一种检查内存泄漏的方法

来源:百度文库 编辑:神马文学网 时间:2024/04/20 10:48:38
一种检查内存泄漏的方法 收藏
微软为我们提供了一种检查内存泄漏的方法。可以让我们在程序结束的时候检查动态分配的内存是否释放完了。
 
若要启用调试内存泄漏方法函数,请在程序中包括以下语句:
#define CRTDBG_MAP_ALLOC
#include
#include
注意: #include 语句必须采用上文所示顺序。如果更改了顺序,所使用的函数可能无法正确工作。然后在程序结束之前调用 _CrtDumpMemoryLeaks() 函数。该函数将会在“输出”窗口中显示内存泄漏信息。 
包括 crtdbg.h文件,是为了将 malloc 和 free 函数映射到其“Debug”版本 _malloc_dbg 和 _free_dbg,这些函数将跟踪内存分配和释放。此映射只在调试版本(在其中定义了 _DEBUG)中发生。发布版本使用普通的 malloc 和 free 函数。
当检查到内存泄漏时,会显示如下信息Detected memory leaks!
Dumping objects ->
C:\PROGRAM FILES\VISUAL STUDIO\MyProjects\leaktest\leaktest.cpp(20) : {18}
normal block at 0x00780E80, 64 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.{18}    表示 内存分配编号normal block  表示 块类型
0x00780E80  表示内存块的地址64 bytes long   表示泄露的内存块长度
Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 表示泄露区的前16个字节的内容发表于 @ 2010年04月28日 17:12:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:在面试一个游戏编程职位前,你需要知道的东西  | 新一篇:反汇编逆向工程程序员面试题,很考人水平
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/QQ471007827/archive/2010/04/29/5539709.aspx