首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

[争议]在一个程序中malloc了很多内存没有free,这个程序正常 退出后这些内存会被系统回收吗?该怎么解决

2012-05-28 
[争议]在一个程序中malloc了很多内存没有free,这个程序正常 退出后这些内存会被系统回收吗?如题:[争议]在

[争议]在一个程序中malloc了很多内存没有free,这个程序正常 退出后这些内存会被系统回收吗?
如题:
  [争议]在一个程序中malloc了很多内存没有free,这些程序结束后这些内存会被系统回收吗?


windows会怎样
linux又会怎样。
freebsd呢



我们今天进程了一场大讨论,搞c的说不会被系统收回。搞C++的都说会。
到低会不会。

[解决办法]
mark,静待高手解答
[解决办法]
会释放,不然你随便写一个程序malloc一段内存再退出,然后系统内存告急?显然是不合理的。

一个程序就会影响系统?你觉得这个合理么?
[解决办法]

探讨
引用:

内存都是由系统管理的,你的程序退出了,系统会处理那部分内存。

如果你的程序不断运行不停而不去管你的资源的话,才会出现内存溢出的问题。

不要把我们的WINDOWS想像得那么白痴,不过其它系统就不知道了。


同意!

细想一下,任何系统都支持多进程,每个进程结束后,OS都会清理进程的东西,当然它所占用的内存肯定会回收的!
我认为支持多进程的OS在进程结束后都会回收内存。

[解决办法]
现代OS都会释放这块内存,单个进程退出时,它所使用的资源都会被系统回收,但如果你写了一个有内存泄露的程序,又被一个长期运行的程序使用(如服务器程序),那么内存泄露就会显现了。

热点排行