Zer*_*erg 7 c++ memory allocation dynamic
在C++中,当您在堆上创建一个新变量时,如下所示:
int* a = new int;
Run Code Online (Sandbox Code Playgroud)
你可以告诉C++使用delete这样回收内存:
delete a;
Run Code Online (Sandbox Code Playgroud)
但是,当程序关闭时,是否会自动释放分配了新内存的内存?
是的,它会被自动回收,但如果你打算编写一个大量使用堆而不是delete在任何地方调用的程序,你必然会快速耗尽堆内存,这会使你的程序崩溃.
因此,只要您不再需要所述变量,就必须仔细管理您的内存并释放动态分配的数据,并且delete每个new(或者delete []如果使用new [])匹配.