内存泄露问题

csk613 2008-10-28 06:51:35
在一个程序中,我new了很多的变量。如果我的程序突然结束运行。这些事先new 的内存。系统会帮助释放吗?谢了。
...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
overbai 2008-10-30
  • 打赏
  • 举报
回复
会的。
在windows中,包括内核对象句柄在内都是进程相关的。当进程结束时,分配的资源都会释放,内核对象的引用计数为0的也会释放。
rgmlkthh 2008-10-30
  • 打赏
  • 举报
回复
1楼对
rularys 2008-10-30
  • 打赏
  • 举报
回复
一楼的系统健壮,二楼的系统不好用甚至用不了
aime99 2008-10-30
  • 打赏
  • 举报
回复
用户代码释放。
泄露只是针对某个程序的一次运行吧。
如果在某个函数里只申请没释放,会泄露
当这个函数调用多次,就会把对给消耗了
zhanshen2891 2008-10-30
  • 打赏
  • 举报
回复
因为你写的是用户代码,所以会释放的!

如果你写内核代码就不会。
JackyRao 2008-10-29
  • 打赏
  • 举报
回复
on the windows platform. the process have their own memory zone, so when the process is killed, the memory will be set free. ;-)
kooris 2008-10-29
  • 打赏
  • 举报
回复
不释放就依赖操作系统了。
就好像你放了一堆垃圾在门口,保洁人员什么时候来你不清楚,什么时候拿走也不知道。
你留下了隐患,代码不能过分的依赖外界(OS等)。
llguan 2008-10-29
  • 打赏
  • 举报
回复
看jeffery richter的windows核心编程,上面说的很明白。
1楼的正解。
wryse 2008-10-29
  • 打赏
  • 举报
回复
应该是1楼说的对。new出来的空间在delete前不能再被使用,但如果程序结束了,系统会自动释放当前程序所使用的所有内存空间,所以单从系统的角度来说,你写的程序new出来不去delete是没有问题的。但是不去进行delete操作对你的程序会有较大危害,因此new出来的空间必须用delete手动释放掉。
C_Plus87 2008-10-29
  • 打赏
  • 举报
回复
应该会,windows以进程为单位分配资源,既然进程结束了,那么windows应该会释放
rgmlkthh 2008-10-29
  • 打赏
  • 举报
回复
我倒,都这么肯定的说,楼下说哪个对?
jesson1018 2008-10-28
  • 打赏
  • 举报
回复
不会的,NEW的内存必须自行手动释放,即使在程序运行结束后,空间依然存在,其他程序不能使用该空间,容易造成内存泄露和碎片,不便于系统内存管理。
因此,在使用完后一定要使用DELETE将分配的内存空间释放。
「已注销」 2008-10-28
  • 打赏
  • 举报
回复
会的。
在windows中,包括内核对象句柄在内都是进程相关的。当进程结束时,分配的资源都会释放,内核对象的引用计数为0的也会释放。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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