Здравствуйте, гость ( Вход | Регистрация )
Antiglobalist | Дата 10.5.2011, 21:09 |
Место утечки нашел(Метод Разметка) Раскрывающийся текст
Заменил scene->removeItem(vec.at(0)); на delete vec.at(0); На счет NULL проверок , да можно убрать если в конструкторе указатели приравнять к NULL , иначе ошибка. Всем Спасибо =) |
|
Litkevich Yuriy | Дата 10.5.2011, 17:03 |
Думаю на delete , он удаляет память на которую указывает указатель ? конечно |
|
Rocky | Дата 10.5.2011, 15:55 |
На 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. Если в этом цикле убрать все, кроме создания/удаления объектов класса, что будет? И наоборот. Тут методом исключения - и сразу будет ясно что к чему. |
|
RazrFalcon | Дата 10.5.2011, 15:10 |
А без проверки на NULL утечка есть? | |
Денис | Дата 10.5.2011, 14:46 |
(Зациклил кусок мэйна и получил не хилую утечку) Код в мэйне Раскрывающийся текст
Метод Разметка Раскрывающийся текст
В классах от QGr... динамически не выделяю ни под чего. Думаю на delete , он удаляет память на которую указывает указатель ? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 25.4.2024, 14:58 |