在c ++中检查内存泄漏的最佳方法是什么?

时间:2008-12-28 11:27:19

标签: c++ memory-leaks

我正在实现一个带有链表的稀疏矩阵,手动检查泄漏是不是很有趣,有什么想法吗?

5 个答案:

答案 0 :(得分:18)

Unix的valgrind分析器提供了一个不错的泄漏检测。

然而,这只是成功方法的一部分。另一部分是防止(即最小化)显式内存处理。智能指针和分配器可以帮助防止内存泄漏。此外, do 使用STL类:std::list已经提供了无泄漏链表实现。

答案 1 :(得分:4)

在Windows上:

Compuware BoundChecker(有点贵,但非常好)

Visual LeakDetector(免费,谷歌)

在Linux / Unix上:

净化

答案 2 :(得分:1)

Unix上Purify的原始版本很棒。但是在Rational购买它之后生成的Windows版本非常糟糕。 Flakey如同地狱。不惜一切代价避免。

答案 3 :(得分:0)

如果使用Anjuta,则可以使用valgrind模块。

答案 4 :(得分:0)

你可以在维基百科上阅读关于内存泄漏的好文章:http://en.wikipedia.org/wiki/Memory_leak

这个页面也有很好的链接到其他文章甚至程序,可以帮助你很多。