【发布时间】:2013-03-06 05:27:08
【问题描述】:
我多次遇到内存泄漏。通常当我malloc-ing 就像没有明天一样,或者像脏衣服一样晃来晃去FILE *s。我通常假设(阅读:绝望地希望)至少在程序终止时所有内存都被清理了。是否存在程序终止或崩溃时无法收集泄漏内存的情况?
如果答案因语言而异,那么让我们关注 C(++)。
请注意短语的双曲用法,“就像没有明天”和“悬空......就像脏衣服一样”。不安全* malloc*ing 会伤害您所爱的人。此外,请谨慎使用脏衣服。
【问题讨论】:
-
如果你运行的是像 Linux 或 Windows 这样的“现代”操作系统,那么当程序终止时,操作系统本身会解析任何未释放的内存。
-
不要像没有明天那样 malloc-ing,试着假装有明天并记录你的记忆!
-
@WilliamPursell 啊,所以你说应该
calloc就像没有明天一样。很棒。 -
@zhermes:关于 C 和 C++ 是不同语言的评论比你想象的要隐藏更多......在 C++ 中,你宁愿发现自己利用具有自动存储持续时间的对象,遵循 RAII 习语......您让这些对象为您处理内存管理。
标签: c++ c memory memory-leaks