技术开发 频道

两招搞定Windows平台C++开发内存泄露

      第二种方法正好是它的补充,Memmory Validator可以检查程序整个运行过程中的内存分配情况,也可以将内存泄漏的位置显示出来

  在实际应用第一种方法时,可以采用两个头文件,用于大型工程的调试,几乎不对其他部分代码产生影响。

//config.h

#define MEMORY_DEBUG

#ifdef MEMORY_DEBUG

#include
<stdlib.h>

#include
<crtdbg.h>

#endif
// MEMORY_DEBUG

------------------------------------------------------------------------------

//debug.h

#ifdef MEMORY_DEBUG

#define DEBUG_NEW
new(_NORMAL_BLOCK, __FILE__, __LINE__)

#define
new DEBUG_NEW

#endif
// MEMORY_DEBUG

-------------------------------------------------------------------------------

//main.cpp

#include
"config.h” // config.h, 第一个头文件

#include
"alertparser.h"

#include
"alertinfocache.h"

#include
<iostream>

#include
<pcap.h>

#include
"debug.h" //debug.h, 最后一个头文件


int main (int argc, char ** argv)

{


int i = real_main_fun(argc, argv); // 原有的main函数体


if(_CrtDumpMemoryLeaks())

cout
<< " memory leak " << endl;

return i;

}

  

0
相关文章