Qt:程序退出后指针自动删除

时间:2013-12-16 17:55:48

标签: c++ qt

如果程序很快退出,我是否必须删除指针?

像这样:

#include "mainwidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWidget w;
    w.show();

    int *a = new int[5];

    delete []a;
    return a.exec();
}

我是否真的需要致电delete []a;或者无关紧要因为after return a.exec();main()完成了所有指针)所有指针都会被自动销毁?

1 个答案:

答案 0 :(得分:0)

当程序退出时,操作系统将回收所有可重用资源(有一些特殊例外,例如套接字,有时可能是共享内存)。但在这种情况下,它将被收回。

如果你想养成良好的习惯,可以使用std::unique_ptr<int[]>(或者如果大小实际上是一个常数并且很小,只需要int a[5]std::array<int, 5>)来存储指针,那么你根本不必担心delete[]