利用库检测内存泄露信息
#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个字节的内存而没有释放,但是我们可以很清楚地看到内存泄露在 哪个地方
时间: 2024-11-04 19:33:47