memwatch是一个能够用于检测内存泄漏和错误的工具。
下载链接:https://www.linkdata.se/sourcecode/memwatch/
1.将memwatch.h和memwatch.c复制到项目之下。
2.程序包含memwatch.h (如果有多个文件,应该每个文件都要包含这个.h 未实验)
3.主程序最上面进行宏定义:
#define MEMWATCH
#define MEMWATCH_STDIO 或则 #define MW_STDIO
4.生成的memwatch.log在当前目录
#define _CRT_SECURE_NO_WARNINGS
#define MEMWATCH
#define MEMWATCH_STDIO
//#define MW_STDIO
#include <stdio.h>
#include <stdlib.h>
#include "memwatch.h"
int getMem(char **myp)
{
char *p = (char*)malloc(100);
if (p == NULL)
{
return -1;
}
*myp = p;
return 0;
}
void main()
{
char *tmp = NULL;
getMem(&tmp);
system("pause");
}
============= MEMWATCH 2.71 Copyright (C) 1992-1999 Johan Lindh =============
Started at Thu Mar 19 20:48:57 2020
Modes: 64-bit mwDWORD==(unsigned long)
mwROUNDALLOC==8 sizeof(mwData)==32 mwDataSize==32
Compiled using Microsoft C 18.00
Stopped at Thu Mar 19 20:48:59 2020
unfreed: <1> e:\code\c++\c提高\内存泄漏工具使用测试\内存泄漏工具使用测试\memwatch_test.cpp(12), 100 bytes at 0129DEA0 {FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE ................}
Memory usage statistics (global):
N)umber of allocations made: 1
L)argest memory usage : 100
T)otal of all alloc() calls: 100
U)nfreed bytes totals : 100
MEMWATCH detected 1 anomalies