Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Проблема в VC++ 6 |
Автор: Гость_Unknown 21.1.2004, 18:47 | ||
Мне нужно написать небольшую программу-диалог. Для хранения и изменения некоторых данных я добавил в класс своего диалога нек. переменные. При попытке изменить их программа вылетает! Приведу фрагмент кода:
Причем если изменять строго определенный элемент массива, все работает нормально!(например: m_Sites[23].is_used = 1 ) Если кто-то сталкивался с подобным, пожалуйста, напишите! |
Автор: Alex101 21.1.2004, 19:43 |
Так ты может в другую область памяти лезешь, ведь в C у тебя значение index после цикла будет MAX_SITES+1 (если брык не сработает) Или дело не в этом? |
Автор: Dov 21.1.2004, 19:46 | ||
Обрати внимание на эту строку:
|
Автор: mr.DUDA 21.1.2004, 20:16 | ||||
правильно, т.е. тут действует ситуация, когда "index" так и останется непроинициализированным, а обращение по индексу идёт:
|
Автор: Alex101 21.1.2004, 20:31 | ||
Да, отвык писать на C, а точнее разбираться в коде, но идею, думаю, поняли. ![]() Не, надо так написать:
|
Автор: Гость_switch 22.1.2004, 16:04 |
У тебя плохо структурирован код: попробуй так: for(int i = 0; i < MAX_SITES; i++) if(m_Sites[i].is_used == 0) { m_Sites[i].is_used = 1; break; } или так for(int i = 0; i < MAX_SITES; i++) if(m_Sites[i].is_used == 0) break; m_Sites[i].is_used = 1; |