请教,程序异常终止时,malloc分配的堆内存会自动释放吗?xiexie

startstop2015 2015-09-09 08:52:24
请教,程序异常终止时,malloc分配的堆内存会自动释放吗?xiexie
...全文
751 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-09-09
  • 打赏
  • 举报
回复
heroesjun 2015-09-09
  • 打赏
  • 举报
回复
引用 5 楼 startstop2015 的回复:
[quote=引用 4 楼 zhangxiangDavaid 的回复:] 程序都终止了,还有什么可以留下
那我们还用担心比如“内存崩溃”“内存泻漏”吗?即使是堆变量,即使没有free,只要程序结束/异常终止了,也自动free了?[/quote] 服务程序是要长期运行的,可能一年365天一直运行着,如果有内存泄露,超过虚拟内存最大限度,程序就会崩溃。
大大大白 2015-09-09
  • 打赏
  • 举报
回复
我们程序使用的内存是虚拟内存,使用的时候映射到物理内存上,当程序崩溃以后,系统就收回了映射的部分,所以,不是是自动free掉,而是强制收回了
苏叔叔 2015-09-09
  • 打赏
  • 举报
回复
引用 5 楼 startstop2015 的回复:
[quote=引用 4 楼 zhangxiangDavaid 的回复:] 程序都终止了,还有什么可以留下
那我们还用担心比如“内存崩溃”“内存泻漏”吗?即使是堆变量,即使没有free,只要程序结束/异常终止了,也自动free了?[/quote] 很多时候,内存会泄露,直到内存被耗尽,程序才奔溃
xian_wwq 2015-09-09
  • 打赏
  • 举报
回复
引用 5 楼 startstop2015 的回复:
[quote=引用 4 楼 zhangxiangDavaid 的回复:] 程序都终止了,还有什么可以留下
那我们还用担心比如“内存崩溃”“内存泻漏”吗?即使是堆变量,即使没有free,只要程序结束/异常终止了,也自动free了?[/quote] 问题是很多程序不能随意退出 靠程序退出来解决内存泄漏是下下策
startstop2015 2015-09-09
  • 打赏
  • 举报
回复
引用 4 楼 zhangxiangDavaid 的回复:
程序都终止了,还有什么可以留下
那我们还用担心比如“内存崩溃”“内存泻漏”吗?即使是堆变量,即使没有free,只要程序结束/异常终止了,也自动free了?
苏叔叔 2015-09-09
  • 打赏
  • 举报
回复
程序都终止了,还有什么可以留下
startstop2015 2015-09-09
  • 打赏
  • 举报
回复
引用 2 楼 sandshaw 的回复:
不是自动释放, 而是被系统收回.
那有什么区别码?
sandshaw 2015-09-09
  • 打赏
  • 举报
回复
不是自动释放, 而是被系统收回.
startstop2015 2015-09-09
  • 打赏
  • 举报
回复
想请教的是栈变量是否会在程序异常终止时,比如出错了,栈变量申请的内存会自动释放吗?

69,369

社区成员

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

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