比方说,我有很多内存将被分配在程序中的某些点。内存泄漏的重大争论之一是,如果在流程执行结束时将被操作系统回收,则占用大量内存是可以的。问题在于,即使泄漏是良性的,它仍然会占用内存。我希望我的流程每次只能处理大量的内存。这就是我的意思:尽早破坏事物是否过早优化?
{ // begin block
int a[some_large_number];
do_work_with_a();
} // destruct large allocation
{ // different block
int a[some_large_number];
do_work_with_a();
} // destruct large allocation
它真的有很大的区别吗?
虽然本地数组并没有分配在堆上,但它们分配在堆栈上。这里唯一的“分配”是为这些数组保留一些堆栈空间。 – cdhowie 2014-10-11 17:38:39
我会说,一般来说,一旦你完成了记忆,释放它。 – Niall 2014-10-11 17:44:31
因此,下一代C++程序员认为这是可以辩论的天气或不记忆泄漏是好的?我们都注定要失败。 – 2014-10-11 18:07:33