免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1462 | 回复: 8
打印 上一主题 下一主题

请教高手关于new和delete的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-05 16:43 |只看该作者 |倒序浏览
在程序中new char[100000000];但不delete,在程序退出后,该内存会释放吗?好象不应该释放,因为从os拿过来的。但经测试,该内存被释放了,如何解释?是不是new出来的映射到自己的内存空间,当程序退出时,程空消失,os 就收回相应的堆内存?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-06-05 18:28 |只看该作者

请教高手关于new和delete的问题

是不是书写错误了?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-06-05 22:36 |只看该作者

请教高手关于new和delete的问题

进程退出后,你的一切资源都要回收的。

论坛徽章:
0
4 [报告]
发表于 2004-06-05 22:48 |只看该作者

请教高手关于new和delete的问题

if that's true, windows would have never got stuck. you would have never seen memory exhausted

论坛徽章:
0
5 [报告]
发表于 2004-06-05 23:07 |只看该作者

请教高手关于new和delete的问题

lenovo 说得对,进程退出后,其占用的空间由操作系统自动回收。

有一种情况比较特殊,僵死进程还保留了一点点资源,直到父进程 wait 它之后才释放。

论坛徽章:
0
6 [报告]
发表于 2004-06-07 09:30 |只看该作者

请教高手关于new和delete的问题

所谓的内存泄漏也只是在程序运行的时候才出现吧。即使是多线程的程序,主进程一旦退出运行,整个程序所开辟的空间都会被系统自动收回的。那么系统中的小的碎片空间是在什么情况下产生的呢??

论坛徽章:
0
7 [报告]
发表于 2004-06-07 15:03 |只看该作者

请教高手关于new和delete的问题

能不能给出说明,不需要结论性的回答啦。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-06-07 15:41 |只看该作者

请教高手关于new和delete的问题

[quote]原帖由 "dori"]能不能给出说明,不需要结论性的回答啦。[/quote 发表:

你想要什么说明?

论坛徽章:
0
9 [报告]
发表于 2004-06-07 19:09 |只看该作者

请教高手关于new和delete的问题

比如你用 malloc 向系统申请内存,得到的内存是算在进程空间范围里的。进程退出后,空间不释放,留下来给谁用呢?所以操作系统被设计成回收这部分内存。

如果进程向内核申请了共享内存之类的 ipc  资源,由于这些资源是在各个进程间共享的,所以一个进程退出后,资源仍保留。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP