| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 741 人关注过本帖
标题:解开对内存泄露误解
只看楼主 加入收藏
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
收藏
 问题点数:0 回复次数:3 
解开对内存泄露误解
最近经常看到一些帖子关于内存泄露
很多人都以为一但内存泄露会一直持续到机器关机
这是不对的,内存泄露的过程只会在那个程序运行的过程中。
1.一但程序结束没有释放的内存都会被操作系统收回(释放)。
2.那为什么操作系统不早点释放堆分配的内存呢?因为它不知道你现在还用不用那段内存。
3.其实你不管在哪(堆,栈)分配的内存,操作系统的进程管理程序都会记得住的。
搜索更多相关主题的帖子: 内存 操作系统 误解 机器 管理程序 
2007-05-01 15:24
wuyangiori
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-1-9
收藏
得分:0 
太深奥了   

真的是想学习了.
2007-05-01 15:50
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
收藏
得分:0 
既然系统会回收,那为什么用到动态分配内存的时候用好之后还要用free(*指针)函数来释放呢???谁帮忙解答下,谢谢...

执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-05-07 17:57
lizhijie
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-4-28
收藏
得分:0 

发表一下看法:
整个程序结束后操作系统或许或许知道释放所有的空间,但在程序执行间,我指在一个函数执行完后,操作系统只会释放函数的栈空间,而不会释放该函数申请的堆空间,假如这个程序是一个很大的程序,有很多函数申请了很多堆空间,到最后程序还没结束内存就没了,free释放的是堆空间。和操作系统没有任何关系,所以一定记得用free释放你所申请的堆!

[此贴子已经被作者于2007-5-7 21:22:35编辑过]


2007-05-07 21:21
快速回复:解开对内存泄露误解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037104 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved