在VC編程時,內存泄露是個麻煩的事情,特別是有時候會產生比較嚴重的后果,而且這種BUG還比較難查.幸好借助一些第三方的軟件,可以方便的找出會產生泄露的地方,比如BoundsChecker.有時候我們想簡單的了解我們的程序是否存在內存泄露,還可以直接使用VC的調試庫.設置內存泄漏檢測檢測內存泄漏的基本工具是調試器和CRT調試堆函數。為了使用調試堆函數,在你的程序中你必須含有下面的說明:#define _CRTDBG_MAP_ALLOC#include #include #include說明必須按順序說明。如果你改變了順序,你所用的函數可能不能正常工作。包含crtdbg.h的_malloc_dbg和 _free_dbg將 malloc和free函數映射到測試版中,它可以跟蹤內存的分配和釋放。這種映射僅僅在一個測試體系中發(fā)生(也就是說,僅僅當_DEBUG被定義的時候)。釋放的體系使用通常的malloc和 free功能。#define說明映射CRT堆函數的低級版本到相應的測試版本。這個說明是不需要的,但是沒有它,內存泄漏處含有的只是沒有多大用處的信息。一旦你已經增加了剛才的說明,你能夠通過在你的程序中包含下面的說明來釋放內存信息:_CrtDumpMemoryLeaks();當你在調試情況下運行你的程序時,在輸出窗口的Debug 標簽處_CrtDumpMemoryLeaks表現出內存泄漏的信息。內存泄漏信息類似下面這樣:Detected memory leaks!Dumping objects ->C:PROGRAM FILESVISUAL STUDIOMyProjectsleaktestleaktest.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 CDObject dump complete.