欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法

发布时间:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

项目工程中存在内存泄露,被折磨了一晚上,终于查了出来,因为之前没有相关的经验,还比较生疏,在此记录下来,方便以后查找。

对于malloc出的内存的检测方法

这篇文章中详细地记录了从检查到找到确定位置到修复的方法,这里不再赘述。但是这是针对于C语言中的malloc方法的,C++中不再推荐使用malloc,取而代之的是new,如果按照这种方法的话,可以检测出内存泄露,但是不能确定到具体的位置。

对于new方法分配的内存的检查

这里分享一些C++中检测内存泄漏的技巧,与上面的方法不同的是,我们要多定义一个宏命令:#define _CRTDBG_MAP_ALLOC_NEW,部分代码如下:

#define _CRTDBG_MAP_ALLOC

#define _CRTDBG_MAP_ALLOC_NEW

#include

这几个是必须的头文件和宏定义,之后在工程出口添加:

_CrtDumpMemoryLeaks();

运行后”输出”窗口会显示内存泄露信息:

但是这里的文件位置还不是准确的,指向的是crtdbg.h这个头文件,这里可以用到一个小技巧:双击文件跳转到对应行,添加断点,添加条件,当new的空间大小等于”输出”窗口所显示的空间大小时,触发断点。如图所示:

触发断点后,在“调用堆栈”里就可以看到具体是哪里申请的内存了:

当然,这只是一种“歪门邪道”,因为如果泄露的内存大小是个很常见的数字,比如8bit,4bit之类,这种方法就没用了。

总结

以上是生活随笔为你收集整理的vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。