![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_Unknown |
|
|||
Unregistered |
Мне нужно написать небольшую программу-диалог.
Для хранения и изменения некоторых данных я добавил в класс своего диалога нек. переменные. При попытке изменить их программа вылетает! Приведу фрагмент кода:
Причем если изменять строго определенный элемент массива, все работает нормально!(например: m_Sites[23].is_used = 1 ) Если кто-то сталкивался с подобным, пожалуйста, напишите! |
|||
|
||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Так ты может в другую область памяти лезешь, ведь в C у тебя значение index после цикла будет MAX_SITES+1 (если брык не сработает)
Или дело не в этом? Это сообщение отредактировал(а) Alex101 - 21.1.2004, 19:57 -------------------- С уважением, А. Фролов. |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Обрати внимание на эту строку:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
правильно, т.е. тут действует ситуация, когда "index" так и останется непроинициализированным, а обращение по индексу идёт:
-------------------- ![]() |
||||
|
|||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Да, отвык писать на C, а точнее разбираться в коде, но идею, думаю, поняли.
![]() Не, надо так написать:
-------------------- С уважением, А. Фролов. |
|||
|
||||
Гость_switch |
|
|||
Unregistered |
У тебя плохо структурирован код:
попробуй так: 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; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |