Visual Studio中检测内存泄漏的方法
2023-09-14 09:07:02 时间
#include <iostream>
//可以定位到发生内存泄露 所在的文件和具体那一行,用于检测 malloc 分配的内存
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
//把分配内存的信息保存下来,可以定位到那一行发生了内存泄露。用于检测 new 分配的内存
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif
//有用
inline void EnableMemLeakCheck()
{
//该语句在程序退出时自动调用 _CrtDumpMemoryLeaks(),用于多个退出出口的情况.
//如果只有一个退出位置,可以在程序退出之前调用 _CrtDumpMemoryLeaks()
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
}
int main(int argc, char* argv[])
{
EnableMemLeakCheck();
//运行到 第 191 次 内存分配的时候停下来
//_CrtSetBreakAlloc(149);
char* p = new char[100];
char* p1 = new char[200];
char* p2 = (char*)malloc(600);
delete p;
getchar();
//_CrtDumpMemoryLeaks();//这个代码好像会输出额外多余的内存分配信息
return 0;
}
相关文章
- Visual Studio 2008 集成SP1补丁
- Visual Studio 2012旗舰版序列号:「建议收藏」
- Visual Studio中配置sqlite3
- Visual Studio (VS2017)提交代码到Git服务器流程(GitCode)
- Visual C++ 微软常用运行库合集_2022.09.15
- Visual Studio 配置 Halcon C++ 运行环境
- Visual Studio创建简单MFC工程
- 【2】Visual Studio 2017同时配置OpenCV2.4 以及OpenCV4.3
- 驱动开发:配置Visual Studio驱动开发环境
- 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )
- 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
- 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )
- 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )
- 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 )
- Visual Studio Code 1.76 发布
- 池使用Oracle连接池VS.使用 Visual Studio 连接池(vsoracle连接)