c++ - 在 C/C++ 中避免内存泄漏的方法

标签 c++ c memory memory-leaks

我可以使用哪些技巧来避免应用程序中的内存泄漏?在我当前的项目中,我使用了一个工具“INSURE++”来查找内存泄漏并生成报告。

除了该工具之外,还有什么方法可以识别内存泄漏并克服它。

最佳答案

有三种主要方法可以做到这一点。

首先是首先不要造成内存泄漏。防御性编程技术在这里是无价的。看到这个excellent presentation有关此问题的摘要,或 Secure C Coding 中的相关章节.我对 C 比对 C++ 更熟悉,但我了解 C++ 的 smart pointers在这里很有用。

第二种方法静态分析,它尝试检测源代码中的错误。此类别中的原始工具是 lint,但遗憾的是,它现在已经过时了。据我所知,最好的工具是商业的,例如 coverty .但是,有些 free tools do exist .

第三种方法是在运行时检测内存泄漏,就像 INSURE++ 所做的那样。 Valgrind这里非常好,强烈推荐。它可能有助于捕获您已经引入的错误。如果您确实有一个具有良好代码覆盖率的测试套件,这将特别有用。

关于c++ - 在 C/C++ 中避免内存泄漏的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2983216/

相关文章:

检查 pthread 可取消状态

c - 无法使功能正常工作,程序总是在提示后崩溃

c# - LINQ IEnumerable<T> 内存结构

javascript - 将很长的变量从 PHP 传递到 Javascript

c++ - 为什么我需要 std::get_temporary_buffer?

c++ - 将文本文件读入 Safearray

c++ - 玩家角色的背景颜色 (@) 与其他方 block 重叠

C++ OOP 无法正确存储和显示内容

c - 从 C 中的链表中删除第一个节点

java - 如何清除要进行垃圾收集的对象(HashMap)-Java