#ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_CLIENTBLOCK #endif #define _CRTDBG_MAP_ALLOC #include <assert.h> #include <stdlib.h> #include <crtdbg.h> #ifdef _DEBUG #define new DEBUG_CLIENTBLOCK #endif ///此函数在程序入口处首先调用 ///会在output的窗口中输出检查结果 void CheckOnExit() { _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); int mCount = _CrtDumpMemoryLeaks(); assert( mCount == 0); } void main() { atexit(CheckOnExit); ... }
此外,还可以使用Visual Leak Detector这个工具来检测
http://vld.codeplex.com/
时间: 2024-10-31 20:57:32