Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2010, 16:19   #1
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
Смех в чем проблема

народ вопрос прям тупой
при объявлении экземпляра класса пишу так

char peremennaya[7];
strcpy(peremennaya,"hgvhbh");

почему в нем хранится мусор из памяти а не то что копируется

ошибка устраняется удалением первой строки. туплю и никак не могу понять почему так
массив перекрывает запись
хотелось бы понять причину этго
ошибка то реально тупая но логичная

Последний раз редактировалось серг; 13.10.2010 в 16:38.
серг вне форума Ответить с цитированием
Старый 13.10.2010, 16:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Проверил на VS2010 -
Код:
#include <string.h>

int _tmain(int argc, _TCHAR* argv[])
{
    char peremennaya[7];
    strcpy(peremennaya,"hgvhbh");
    printf("%s",peremennaya);getchar();
    return 0;
}
Результат:
Цитата:
hgvhbh
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 16:45   #3
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию

так прикол не в этом при вызове в мейне до принтфа в ней хранится мусор если строку убрать мусор не хранится
почему мусор там является промежуточным значением
серг вне форума Ответить с цитированием
Старый 13.10.2010, 16:49   #4
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию

Код:
#include <string.h>

int _tmain(void) вот здесь так функция же без параметров
{
    char peremennaya[7];
    strcpy(peremennaya,"hgvhbh");
    printf("%s",peremennaya);
    getchar();
}
причем наблюдаю при постановке брейкпоинта до принтфа в режиме отладки я немного загнул про ошибку прога работает но эта особенность меня несколько удивила

Последний раз редактировалось серг; 13.10.2010 в 16:57.
серг вне форума Ответить с цитированием
Старый 13.10.2010, 17:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
так прикол не в этом при вызове в мейне до принтфа в ней хранится мусор если строку убрать мусор не хранится
почему мусор там является промежуточным значением
Чет я не понял... Ну хранится и пусть себе хранится... Ты же все равно потом его затираешь strcpy-шкой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 17:01   #6
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию

нет прост интересно почему если убрать char peremennaya[7] этого не происходит насколько я понял ошибка логическая но опять же чем это объяснить ???
серг вне форума Ответить с цитированием
Старый 13.10.2010, 17:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему если убрать char peremennaya[7]
Дак если ее убрать то strcpy(peremennaya,"hgvhbh"); не скомпилируется.
Другое дело если написать char peremennaya[7]=""; тогда компилятор ее проинициализировать должен, и мусор уберет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 17:06   #8
серг
Форумчанин
 
Регистрация: 02.11.2009
Сообщений: 179
По умолчанию

так в чем прикол она компилируется и работает хошь скрин кину
я писал общий пример вот конкретно
class::class(void)
{
strcpy(cl, "pg");
}
void main()
{
class obj1();
}
в обж хранится мусор если есть char cl[7] если его нет все нормально

Последний раз редактировалось серг; 13.10.2010 в 17:13.
серг вне форума Ответить с цитированием
Старый 13.10.2010, 17:09   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
хошь скрин кину
Давай. И проект в архиве с исходником но без экзешника
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2010, 17:12   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2серг
ребилдол прими
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем проблема? Starleychik Операционные системы общие вопросы 4 02.09.2009 13:06
в чем проблема??? N@Z Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2009 23:07
в чем проблема? Exploit Помощь студентам 10 26.01.2009 09:39
В чем проблема? Sirazh Microsoft Office Excel 4 25.09.2008 21:32