浅谈CC++内存泄漏及其检测工具

时间:2011-12-06 12:18:13
【文件属性】:

文件名称:浅谈CC++内存泄漏及其检测工具

文件大小:5KB

文件格式:TXT

更新时间:2011-12-06 12:18:13

浅谈CC++内存泄漏及其检测工具

浅谈C/C++内存泄漏及其检测工具2006-04-03 09:00 作者: 出处: 温馨小屋 责任编辑:>方舟  对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟,但是在c/c++领域的发展并不顺畅,虽然很早就有人思考在C++中也加入GC的支持。现实世界就是这样的,作为一个c/c++程序员,内存泄漏是你心中永远的痛。不过好在现在有许多工具能够帮助我们验证内存泄漏的存在,找出发生问题的代码。   内存泄漏的定义   一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。以下这段小程序演示了堆内存发生泄漏的情形:


网友评论

  • 讲的简单了,还是希望能用工具检查以下,人工和工具结合使用更靠谱。
  • 内存汇漏是C++程序永远的痛,特别是写服务器程序,如果压力大的话,内存泄漏很容易导致程序不能长时间运行,而且查起来非常头痛,如果是自己写的程序还好,当内存泄漏时,大多数会去查自己的代码,而如果是使用了第三方的软件组件存在内存汇漏,往往很难找到问题所在,而白白耗费掉大量时间和精力。
  • lz也也没说内存检测工具啊,只介绍了内存泄漏
  • 谢谢!看了一下,觉得有点麻烦!学习中!
  • 这东西还是自己解决的好。 工具不太好用。