解开对内存泄露误解
最近经常看到一些帖子关于内存泄露很多人都以为一但内存泄露会一直持续到机器关机
这是不对的,内存泄露的过程只会在那个程序运行的过程中。
1.一但程序结束没有释放的内存都会被操作系统收回(释放)。
2.那为什么操作系统不早点释放堆分配的内存呢?因为它不知道你现在还用不用那段内存。
3.其实你不管在哪(堆,栈)分配的内存,操作系统的进程管理程序都会记得住的。
发表一下看法:
整个程序结束后操作系统或许或许知道释放所有的空间,但在程序执行间,我指在一个函数执行完后,操作系统只会释放函数的栈空间,而不会释放该函数申请的堆空间,假如这个程序是一个很大的程序,有很多函数申请了很多堆空间,到最后程序还没结束内存就没了,free释放的是堆空间。和操作系统没有任何关系,所以一定记得用free释放你所申请的堆!
[此贴子已经被作者于2007-5-7 21:22:35编辑过]