#define _CRTDBG_MAP_ALLOC //定位内存泄露所在file #include <stdlib.h> #include <crtdbg.h> void AllocMemory(char* buffer, int sz) { buffer = (char*) malloc(sz); } _CrtMemState cms1, cms2, cms3; int main() { _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); _CrtMemCheckpoint(&cms1);//内存状态检测点1 char* data = NULL; AllocMemory(data, 100); _CrtMemCheckpoint(&cms2);//内存状态检测点1 if (_CrtMemDifference(&cms3, &cms1, &cms2))//比较两个内存检测点的内存差异,差异结果存入cms3中 _CrtMemDumpStatistics(&cms3);//统计内存状态不同内存情况 _CrtDumpMemoryLeaks(); return 0; }