操作系统会回收泄漏掉的内存吗?

scbeans 2003-08-27 11:12:15
一个发生了内存泄漏的程序在关闭后,操作系统能否把所有泄漏掉的内存收回来?
...全文
214 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
thrillers 2003-08-28
  • 打赏
  • 举报
回复
学习
scbeans 2003-08-28
  • 打赏
  • 举报
回复
多谢各位捧场!
  • 打赏
  • 举报
回复
不要以为用了java就不会发生内存泄漏了!到目前为止还没有一种好的方案可以彻底解决垃圾回收的,有很多情况实际上发生了内存泄漏,但java根本无法判断是否是不需要的内存。
liao2001 2003-08-27
  • 打赏
  • 举报
回复
自己的问题自己解决,不要把责任都推给别人
scbeans 2003-08-27
  • 打赏
  • 举报
回复
楼上的,
不同的OS会有不同表现?
具体点,比如WINDOWS…… ?
tomsx 2003-08-27
  • 打赏
  • 举报
回复
depending on what OS be used at that moment...
Jinhao 2003-08-27
  • 打赏
  • 举报
回复
当然可以,但你不能写出类似于下面的代码
int main()
{
int *p=new int[100];
...
//delete []p; 因为程序马上要退出了,我就不释放内存从而提高效率
return 0;
}
这是一个编码习惯的问题。
POLOM 2003-08-27
  • 打赏
  • 举报
回复
泄漏内存的程序退出后,操作系统会回收其所有内存
feixue3000 2003-08-27
  • 打赏
  • 举报
回复
sure
sevecol 2003-08-27
  • 打赏
  • 举报
回复
能。
Tinybaby 2003-08-27
  • 打赏
  • 举报
回复
Windows好像能
它给每个独立的进程是4Gb的空间,这4Gb是虚拟的,目的是隔离,系统只把实际上用到的东西装进物理内存(包括虚拟内存),在某个进程结束时,系统肯定使用整理一下内存的,当然这个过程也包括回收泄漏的内存
Tinybaby 2003-08-27
  • 打赏
  • 举报
回复
Windows好像能
它给每个独立的进程是4Gb的空间,这4Gb是虚拟的,目的是隔离,系统只把实际上用到的东西装进物理内存(包括虚拟内存),在某个进程结束时,系统肯定使用整理一下内存的,当然这个过程也包括回收泄漏的内存
kundy 2003-08-27
  • 打赏
  • 举报
回复 1
系统分配内存是以进程为单位的,呵呵

当进程结束的时候,会回收它所占有的所有资源,包括内存。

如skywater(宁镇子) 所说,“用C/C++编写的程序造成的内存泄漏,在程序运行的过程中是不会被回收的。所以如果程序长时间运行之后,所吃掉的内存有可能导致操作系统的崩溃。程序终止运行之后,操作系统会收回程序所占用的资源,包括内存。”
trackant 2003-08-27
  • 打赏
  • 举报
回复
有理,即使不擦也可以,晚上洗澡的时候自然就干净了,只是这一天可能会过得不太爽。。。
fei1703 2003-08-27
  • 打赏
  • 举报
回复
粗俗一点说,就是自己拉屎,自己擦屁股。
--------------------------------------------------
有趣!
skywater 2003-08-27
  • 打赏
  • 举报
回复 1
用C/C++编写的程序造成的内存泄漏,在程序运行的过程中是不会被回收的。所以如果程序长时间运行之后,所吃掉的内存有可能导致操作系统的崩溃。程序终止运行之后,操作系统会收回程序所占用的资源,包括内存。
所以说,用C/C++写程序要特别小心,自己分配的内存要记得回收,有malloc,一定要有free,有new,一定要有delete。粗俗一点说,就是自己拉屎,自己擦屁股。
但是如果用JAVA编写程序的化,因为JAVA有内存回收机制,所以不会造成内存的泄漏。
robbie24 2003-08-27
  • 打赏
  • 举报
回复
正确的回收以及管理内存,本身就是作为OS的一项功能存在的.
但是,从程序员的角度出发,(也是道德准则),你抓来的内存你不释放,你写出来的东西谁敢用?
是的是的,我知道你又要说了,很多OS都支持虚拟内存技术,我不担心.对,虚拟内存的却是件美好的东西,但又不是每一个人从一开始就拥有虚拟内存的.(想想你的client) ^_^
riverboat 2003-08-27
  • 打赏
  • 举报
回复
会的,呵呵
wbh0360 2003-08-27
  • 打赏
  • 举报
回复
当然会了!
但是,程序未结束可能回用完内存,那不就玩完了!
njtu 2003-08-27
  • 打赏
  • 举报
回复
能回收。
不过最好自己来。
加载更多回复(3)

69,322

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧