如果程序很快退出,我是否必须删除指针?
像这样:
#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()
完成了所有指针)所有指针都会被自动销毁?
答案 0 :(得分:0)
当程序退出时,操作系统将回收所有可重用资源(有一些特殊例外,例如套接字,有时可能是共享内存)。但在这种情况下,它将被收回。
如果你想养成良好的习惯,可以使用std::unique_ptr<int[]>
(或者如果大小实际上是一个常数并且很小,只需要int a[5]
或std::array<int, 5>
)来存储指针,那么你根本不必担心delete[]
。