c++内存泄漏检测

利用库检测内存泄露信息

#define _CRTDBG_MAP_ALLOC  //如果没有这个宏定义,我们只能知道有内存泄露,却无法知道在哪个地方申请内存忘记了释放

 

#include <stdlib.h> #include <crtdbg.h>
int main(void)
{    
 char *p = (char *)malloc(sizeof(char) * 100);
    _CrtDumpMemoryLeaks();
}
使用crtdbg来检测到内存泄露很简单,只要在文件的第一行定义_CRTDBG_MAP_ALLOC,然后include头文件crtdbg.h,在程序需要内存检测的地方调用_CrtDumpMemoryLeaks,就可以输出内存泄露的信息,如上面的程序,我们申请了100个字节的内存而没有释放,但是我们可以很清楚地看到内存泄露在 哪个地方
posted @ 2017-06-06 20:45  mximo  阅读(178)  评论(0编辑  收藏  举报