Название: Краш Отправлено: like-nix от Март 18, 2011, 00:01 Проблема однако =)
Код: #include <QtGui/QApplication> жестко падает =) при выходе из блока if(QSqlError::NoError != err.type()) Вот ошибка И подскажите пожалуйста если я буду использовать указатели вместо объектов cancelButton, okButton, layoutButtons, layoutDialog, ConfigureSQL буду использовать указатели их надо принудительно удалять? И вообще какие классы в Qt нужно принудительно удалять, а какие лучше использовать в качестве объектов, а какие как указатели? Название: Re: Краш Отправлено: like-nix от Март 18, 2011, 00:06 ancelButton, okButton, layoutButtons, layoutDialog, ConfigureSQL заменил на указатели стало хорошо =) Сижу думаю как там утечки памяти =)
Может кто подскажет как в Qt утечки памяти посмотреть проще всего замарачиваться особо нет времени. Название: Re: Краш Отправлено: like-nix от Март 18, 2011, 00:06 Или может smart pointers использовать?
Название: Re: Краш Отправлено: alexman от Март 18, 2011, 00:11 BoundsChecker
Название: Re: Краш Отправлено: Пантер от Март 18, 2011, 08:23 Возможно я еще не проснулся, но ошибку в коде я не нашел, все должно работать.
Утечки можно посмотреть valgrind'ом под Линуксом. Название: Re: Краш Отправлено: GreatSnake от Март 18, 2011, 11:06 Цитировать Сижу думаю как там утечки памяти =) А стоит ли об этом думать, коли аллокация делается в main()?Или вопрос обо всех утечках? Название: Re: Краш Отправлено: like-nix от Март 18, 2011, 13:17 Да обо всех в челом. Я не нашел в документации нормального описания сборщика муссора который работает в Qt.
Название: Re: Краш Отправлено: GreatSnake от Март 18, 2011, 13:20 Цитата: like-nix Да обо всех в челом. Я не нашел в документации нормального описания сборщика муссора который работает в Qt. Сборщик мусора в C++? :oНазвание: Re: Краш Отправлено: like-nix от Март 18, 2011, 13:25 Ну у них все примеры написаны без единого гвоздя(delete) почти =) И опенсорсных проектах такая практика очень часто встречается, все либо забивают на освобождение либо... он есть =)
Название: Re: Краш Отправлено: Пантер от Март 18, 2011, 13:26 В Qt все решают родительские связи. Если назначаешь парента, то будь уверен, что он сам убьет своего ребенка.
Название: Re: Краш Отправлено: like-nix от Март 18, 2011, 13:28 А кто родителя убивает? =)
Название: Re: Краш Отправлено: GreatSnake от Март 18, 2011, 13:29 Цитировать Ну у них все примеры написаны без единого гвоздя(delete) почти =) И опенсорсных проектах такая практика очень часто встречается, все либо забивают на освобождение либо... он есть =) В Qt используется иерархическая модель "родитель-потомки". При удалении родителя сам родитель удаляет своих потомков.Если придерживаться этой модели, то delete-ом пользоваться практически не придётся. Что и показывают примеры. Название: Re: Краш Отправлено: Пантер от Март 18, 2011, 13:30 А кто родителя убивает? =) Его родитель или ты. Название: Re: Краш Отправлено: like-nix от Март 18, 2011, 13:33 Да теперь ясно)
Название: Re: Краш Отправлено: GreatSnake от Март 18, 2011, 13:35 Либо сам C++, если родительский класс (MainWindow, Dialog) создан на стеке в main().
Либо сам Qt, если виджет имеет атрибут Qt::WA_DeleteOnClose. Название: Re: Краш Отправлено: GreatSnake от Март 18, 2011, 13:37 2 Пантер:
больно быстро печатаешь ;) Название: Re: Краш Отправлено: Пантер от Март 18, 2011, 14:03 Не, я медленно печатаю. Просто как модератор могу время на форуме замедлять.
Название: Re: Краш Отправлено: Racheengel от Март 19, 2011, 14:29 а что есть #include "App.h" ?
|