最终我安装了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();
}
int * a = new int;
。 - Bobnew
都应该有相应的delete
。或者使用智能指针。 - Ed Heal