crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Гость_Денис_*
сообщение 10.5.2011, 14:46
Сообщение #1





Гости








    


(Зациклил кусок мэйна и получил не хилую утечку)
Код в мэйне
Раскрывающийся текст
  
        fx,px ... указатели на объекты класса наследуемого от QGraphicsItem .
        Razmetka(ui->doubleSpinBoxA->value(),ui->doubleSpinBoxB->value(),ui->doubleSpinBoxC->value(),ui->doubleSpinBoxD->value());
        if(fx!=NULL)delete fx;
        fx=new Graphic();
        if(f1x!=NULL) delete f1x;
        f1x=new PrGraphic();
        if(Px!=NULL) delete Px;
        ...
        scene->addItem(fx);
        scene->addItem(P1x);
        scene->addItem(Px);
        scene->addItem(Rx);
        scene->addItem(f1x);


Метод Разметка
Раскрывающийся текст
while(!vec.empty()){
        scene->removeItem(vec.at(0));
        vec.pop_front();
    }
...
text=scene->addText(t.toString(),f);
text->setPos(QPointF(i*30,600)+pog);
vec.append(text);

В классах от QGr... динамически не выделяю ни под чего.
Думаю на delete , он удаляет память на которую указывает указатель ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Rocky
  опции профиля:
сообщение 10.5.2011, 15:55
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 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. Если в этом цикле убрать все, кроме создания/удаления объектов класса, что будет? И наоборот. Тут методом исключения - и сразу будет ясно что к чему.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 26.8.2025, 3:27