首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分段故障与内存泄漏

分段故障与内存泄漏
EN

Stack Overflow用户
提问于 2012-06-18 16:29:31
回答 5查看 5.3K关注 0票数 2

我的问题有两部分:

  • 是否有可能,如果在分配内存之后发生分段错误,但在释放该错误之前,这会泄漏内存(也就是说,内存从未被释放导致内存泄漏)?
  • ,如果是这样的话,有没有办法确保在发生分段错误时清除分配的内存?

我在C++上读过关于记忆管理的文章,但是没有找到任何关于我的具体问题的东西。

EN

Stack Overflow用户

回答已采纳

发布于 2012-06-18 16:40:08

是否有可能,如果在分配内存之后发生分段错误,但在释放它之前,会泄漏内存(也就是说,内存永远不会被释放,从而导致内存泄漏)吗?

是的和不是的:崩溃的过程应该完全由操作系统来处理。但是,请考虑由您的流程生成的其他进程:它们可能不会完全终止。然而,通常这些应该不会占用太多的资源,但这可能会因您的程序而有所不同。请参阅http://en.wikipedia.org/wiki/Zombie_process

如果是的话,是否有任何方法确保在发生分段错误时清除分配的内存?

如果程序是非关键的(这意味着如果它崩溃就没有生命危险),我建议修复分段错误。如果您真的需要能够处理分段错误,请参阅本主题的答案:How to catch segmentation fault in Linux?

UPDATE:请注意,尽管可以处理SIGSEGV信号(并保持程序流),但这并不是一种安全的依赖方式,因为--正如下面的注释所指出的--它是未定义的行为,意味着不同的平台/编译器/.可能有不同的反应。

因此,通过任何可能的方法,修复分段错误(以及windows上的访问冲突)都应该具有第一优先级。仍然使用建议的解决方案来以这种方式处理信号,必须进行彻底的测试,如果将其放入生产代码中,您必须意识到这一点,并得出任何结果--这些结果可能会根据您的需求而变化和依赖,因此我不会给出任何结果。

票数 4
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11087102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档