9.3.2 对象内存的释放与堆内存
一种普遍的误解是“如果对象被撤销,其占据的内存空间被释放,那么对象创建时和函数执行中通过new和malloc申请的动态内存也会被自动释放”,实际上,除非显式地用delete或free释放,申请的动态内存不会随着对象的撤销而撤销,相反,撤销了对象,却没有释放动态内存反而会引起内存泄露。
当然,在程序结束时,操作系统会回收程序所开辟的所有内存。尽管如此,还是要养成new/delete、malloc/free配对使用的编程习惯,及时释放已经无用的内存。
9.3.2 对象内存的释放与堆内存
一种普遍的误解是“如果对象被撤销,其占据的内存空间被释放,那么对象创建时和函数执行中通过new和malloc申请的动态内存也会被自动释放”,实际上,除非显式地用delete或free释放,申请的动态内存不会随着对象的撤销而撤销,相反,撤销了对象,却没有释放动态内存反而会引起内存泄露。
当然,在程序结束时,操作系统会回收程序所开辟的所有内存。尽管如此,还是要养成new/delete、malloc/free配对使用的编程习惯,及时释放已经无用的内存。
本文档使用 Sou.st 构建