我可以使用哪些技巧来避免应用程序中的内存泄漏?在我当前的项目中,我使用了一个工具“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/