Наконец, я установил Ubuntu и настроил Qt + Valgrind для предотвращения утечек памяти, которые я не мог сделать в Windows. Поэтому я не могу понять, обеспечивает ли этот код утечку памяти? На самом деле, Valgrind говорит, что у меня есть только 500 вопросов, но ничего о утечке. ЯПредоставляет ли этот код утечки памяти?
#include <QWidget>
#include <QFrame>
#include <QVBoxLayout>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget * wdgt = new QWidget; //this line should be the cause of leakage
//if it exist (as far as i know)
QVBoxLayout *layout = new QVBoxLayout;
QFrame * frame = new QFrame;
frame->setFrameStyle(QFrame::Panel | QFrame::Plain);
frame->setLineWidth(5);
layout->addWidget(frame);
wdgt->setLayout(layout);
wdgt->setFixedSize(800,600);
wdgt->show();
return a.exec();
}
Нет, это не так, потому что ОС позаботится об этом. – 101010
, но в этом случае доза не вводится 'int * a = new int;' – Mikhail
Каждый 'новый' должен иметь соответствующий' delete'. В качестве альтернативы используйте интеллектуальные указатели –