C ++ Microsoft Visual Studio 2017最佳和最简单的检测内存泄漏的方法?

电视

目前,我有一个解决方案,但不确定在每种情况下是否都可以。使用此解决方案,我可以检查程序中是否存在内存泄漏?如果有人可以提供更好的解决方案,请随时分享答案。谢谢!

我的示例代码在这里:

int *array = new int[5];
delete[] array; //so no memory leaks

//Memory leak check.
if (_CrtDumpMemoryLeaks()) {
    std::cout << "Memory leaks!\n";
}
else {
    std::cout << "No leaks\n";
}

cin.get();
return 0;
亚历克斯

在您的情况下,最合适的方法是您一开始就使用该CRT库,实际上是_CrtDumpMemoryLeaks();像Microsoft文档中所说那样使用

_CrtDumpMemoryLeaks函数确定自程序开始执行以来是否发生了内存泄漏。

关于您的其他疑问:

但我不确定在每种情况下都可以吗

根据Microsoft文档,它应该记录整个程序中发生的所有内存泄漏,即使它在类中或您可能认为的任何位置:

发生内存泄漏时转储调试堆中的所有内存块

同样不要忘记这里提到#define_DEBUG标志:

如果未定义_DEBUG,则在预处理期间将删除对_CrtDumpMemoryLeaks的调用。

但是,如果要制作软件,则应使用STL并使用智能指针。

另外,您可能还可以使用另一种方式来一次检查某个资源的内存泄漏,我在调试时使用了Visual Studio提供的“内存”选项卡,该选项卡位于“调试>窗口>内存> memory1”(注意:在调试模式下查看设置),然后在搜索栏中键入内容array,然后转到指向内存的位置,然后可以进入程序并查看内存是否为空。

注意:如果您想一次以视觉方式监视一个资源,而不是想要对每个可能泄漏的资源进行完整转储,则可以这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Microsoft Visual Studio 2017中检查C ++版本

《Microsoft Visual Studio Community 2017》C#类图

Microsoft Visual Studio 2012 C ++循环参考

C++ Microsoft Visual Studio 数组问题

在已经安装Visual Studio 2017的地方安装双绞线需要Microsoft Visual C ++ 14.0

如何处理适用于 Visual Studio 2017 的 Microsoft Visual C++ Redistributable?

pygraphviz的Python 3 pip安装失败,“需要Microsoft Visual C++”,安装了Visual Studio 2017

C ++ #include在Microsoft Visual Studio 2010中不起作用

如何在Microsoft Visual Studio外部构建C ++代码

如何在C ++中设置json库?(Microsoft Visual Studio)

跨平台c ++和Visual Studio 2017?

Microsoft Visual Studio 2017挂在每个Xamarin操作上

如何安装功能最少的Microsoft Visual Studio 2017?

Visual Studio 2017中的Microsoft Rdlc报表设计器

用于Microsoft Visual Studio Community 2017的graphics.h

意外关闭文档窗口 Microsoft Visual Studio 2017

如何让 Microsoft Visual Studio 2017 链接到 OpenCV 3.4 库?

Microsoft Visual Studio中的输出

Microsoft Visual Studio 2010导入和导出设置错误

Visual Studio团队服务和Microsoft SCSM集成

Microsoft Visual Studio-HTML和CSS导出

Visual Studio找不到Microsoft.AspNetCore.DataProtection的PersistKeysToRedis方法

主要方法的C#单元测试-处理命令行参数-Microsoft Visual Studio测试工具

安装SQL Server 2017 Developer Edition:如何修复Visual Studio运行时(库)``Microsoft Visual C ++ 2019 X64最低运行时间''?

使用Poco Xml文档时Visual Studio 2017检测到内存泄漏

在Microsoft Visual Studio 2015的C ++项目中包含Armadillo C ++库

在C中执行Shellcode(Visual Studio 2017

Visual Studio 2017中的C支持

文件存在c#visual Studio 2017