Где утекает память?, QGraphicsItem+ Scena |
Здравствуйте, гость ( Вход | Регистрация )
Где утекает память?, QGraphicsItem+ Scena |
Гость_Денис_* |
10.5.2011, 14:46
Сообщение
#1
|
Гости |
(Зациклил кусок мэйна и получил не хилую утечку)
Код в мэйне Раскрывающийся текст
Метод Разметка Раскрывающийся текст
В классах от QGr... динамически не выделяю ни под чего. Думаю на delete , он удаляет память на которую указывает указатель ? |
|
|
RazrFalcon |
10.5.2011, 15:10
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
А без проверки на NULL утечка есть?
|
|
|
Rocky |
10.5.2011, 15:55
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
На NULL можно не проверять.
Цитата C++ guarantees that operator delete checks its argument for null-ness. If the argument is 0, the delete expression has no effect. In other words, deleting a null pointer is a safe (yet useless) operation. There is no need to check the pointer for null-ness before passing it to delete: if (p) // useless; delete already checks for a null value delete(p); Тут вероятно что-то не так внутри класса, наследуемого от QGraphicsItem. Если в этом цикле убрать все, кроме создания/удаления объектов класса, что будет? И наоборот. Тут методом исключения - и сразу будет ясно что к чему. |
|
|
Litkevich Yuriy |
10.5.2011, 17:03
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Antiglobalist |
10.5.2011, 21:09
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 29.3.2010 Пользователь №: 1574 Спасибо сказали: 0 раз(а) Репутация: 0 |
Место утечки нашел(Метод Разметка)
Раскрывающийся текст
Заменил scene->removeItem(vec.at(0)); на delete vec.at(0); На счет NULL проверок , да можно убрать если в конструкторе указатели приравнять к NULL , иначе ошибка. Всем Спасибо =) |
|
|
Текстовая версия | Сейчас: 23.11.2024, 14:28 |