【C++】Visual定位内存泄漏方法

原博客地址:https://blog.csdn.net/sinat_20265495/article/details/51763084

方法一:

#ifdef _DEBUG  
#define New   new(_NORMAL_BLOCK, __FILE__, __LINE__)  
#endif  
  
#define CRTDBG_MAP_ALLOC    
#include     
#include     
//在入口函数中包含 _CrtDumpMemoryLeaks();    
//即可检测到内存泄露  
  
//以如下测试函数为例:  
int main()  
{  
    char* pChars = New char[10];  
    _CrtDumpMemoryLeaks();  
    return 0;  
}  

方法二:

#define CRTDBG_MAP_ALLOC    
#include     
#include     
//在入口函数中包含 _CrtDumpMemoryLeaks();    
//即可检测到内存泄露  
  
//定义函数:  
inline void EnableMemLeakCheck()  
{  
    _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);  
}  
//该函数可以放在主函数的任意位置,都能正确的触发内存泄露输出  
  
  
//以如下测试函数为例:  
int main()  
{  
    EnableMemLeakCheck();  
    char* pChars = new char[10];  
    //_CrtDumpMemoryLeaks();  
    return 0;  
} 

你可能感兴趣的:(语言基础)