c++ - 释放动态分配的内存

标签 c++ memory dynamic allocation

在 C++ 中,当你像这样在堆上创建一个新变量时:

int* a = new int;

你可以告诉 C++ 使用 delete 来回收内存,如下所示:

delete a;

但是,当您的程序关闭时,它会自动释放使用 new 分配的内存吗?

最佳答案

是的,它是自动回收的,但是如果你打算编写一个大量使用堆的巨大程序,而不是在任何地方调用 delete,你肯定会很快耗尽堆内存,这将使您的程序崩溃。

因此,必须仔细管理您的内存,并为每个 new(或 delete [] 如果使用 new []),只要您不再需要所述变量。

关于c++ - 释放动态分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276372/

相关文章:

dynamic - 如何为 Box<dyn Trait> 字段指定关联类型的值?

python - 如何在代码中创建 python 方法(签名和内容)?

c++ - 通过 void 指针将对象传递给函数

c++ - Lua 5.2 问题 : 'attempt to call a nil value' from lua_pcall

C++ recv() 问题

c - 调整可能太大的字符串数组的大小

c++ - LNK1104 无法使用visual studio 2008命令提示符打开boost静态库

caching - 程序的大小如何会增加缓存未命中率?

java - Tomcat 崩溃 : There is insufficient memory for the Java Runtime Environment to continue

excel - 变量范围内最后一个填充单元格的返回值