在 C++ 中,当你像这样在堆上创建一个新变量时:
int* a = new int;
你可以告诉 C++ 使用 delete 来回收内存,如下所示:
delete a;
但是,当您的程序关闭时,它会自动释放使用 new 分配的内存吗?
最佳答案
是的,它是自动回收的,但是如果你打算编写一个大量使用堆的巨大程序,而不是在任何地方调用 delete
,你肯定会很快耗尽堆内存,这将使您的程序崩溃。
因此,必须仔细管理您的内存,并为每个 new
(或 delete []
如果使用 new []
),只要您不再需要所述变量。
关于c++ - 释放动态分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276372/