Russian Qt Forum
Ноябрь 24, 2024, 01:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Программа рушится при закрытии через крестик  (Прочитано 10273 раз)
Bepec
Гость
« Ответ #15 : Июнь 09, 2014, 12:54 »

Где то у тебя что-то рушится. Смотри все указатели, выход за границы массива.
Записан
Ginger_Ministrel
Гость
« Ответ #16 : Июнь 09, 2014, 13:46 »

А почему все-таки динамически? То есть, я только что сидел и комментировал разные места кода, прогоняя после этого компиляцию с последующим выходом раз по десять. В итоге выяснилось, что программа выдает либо 0, либо крах чуть ли не рандомно.
Записан
Bepec
Гость
« Ответ #17 : Июнь 09, 2014, 14:15 »

ммм... Тут надо начинать с азов.

При закрытии главного окна вызываются деструкторы всех детей.

Если у вас имеется потерянный указатель, выход за границы массива, используется неинициализированный указатель или вы используете указатели приводя типы C-шным преобразованием, у вас могут быть испорчены объекты.
И при вызове деструктора они разваливаются на части.

PS по аналогии - указателю на самолёт присвоили машину. При попытке удаления крыльев у машины, возникает ексепшн Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Июнь 09, 2014, 15:53 »

Нужен стек вызовов в отладчике. Без него можно и на 2 листах гадать, и на 20 - все равно толку ноль
Записан
Bepec
Гость
« Ответ #19 : Июнь 09, 2014, 16:02 »

В таком вылете стек уже % на 90 порублен в клочья Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #20 : Июнь 09, 2014, 16:03 »

В таком вылете стек уже % на 90 порублен в клочья Улыбающийся
Почему?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #21 : Июнь 09, 2014, 16:07 »

2 Ginger_Ministrel
Запустила программу под valgrind и внимательно посмотрите, что он вам напишет.
Записан
Bepec
Гость
« Ответ #22 : Июнь 09, 2014, 16:12 »

Ну у меня всегда в таких случаях стек разрушен.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #23 : Июнь 09, 2014, 16:15 »

Ну у меня всегда в таких случаях стек разрушен.
Странно. Стек можно потерять, если писать за пределы буфера выделенного на стеке.
Не самая типичная ошибка.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #24 : Июнь 09, 2014, 16:22 »

Ну у меня всегда в таких случаях стек разрушен.
Ну тогда хужее но тоже можно. Перед тем как пускаться в объяснения - подождем ответа ТС
Записан
Alexu007
Гость
« Ответ #25 : Июнь 10, 2014, 14:04 »

Побольше точек останова в сомнительные места программы, что-то типо ShowMessage. Потом каждый раз жать "Ok" и смотреть, после чего валится.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.