如果我在堆上声明一些东西,比如 char *a=new char[1000]
并且主程序停止,如果没有 delete[]<,那么分配的内存会发生什么
调用?它保留在堆上还是自动释放?
最佳答案
就C++而言,它会发生什么是完全未定义的。然而,几乎任何合理的操作系统都会在进程终止时清理进程分配的内存。但是,自己清理干净是一个很好的做法。
关于C++堆内存分配/释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367386/