zoukankan      html  css  js  c++  java
  • VS环境下C++如何检查是否内存泄漏

    c++如何检查是否内存泄漏

    今天在做OpenGL引擎的时候,突然想到检查一下内存泄漏。具体是我做了一个渲染类Render,将所有世界中存在的物体的指针都存放在这个类中。于是我不免担心,在Render中删除一个物体时,是否真的把内存都释放掉了呢?OpenGL当中各种VAO、VBO、以及我自己在类中写的各种new语句,如果没有在析构函数中释放,那是很危险的。

    在程序入口写几个语句,程序退出时,如果发现有内存泄漏,会自动在DEBUG OUTPUT窗口和DebugView中输出内存泄漏信息

    -- 引用自《如何检查C++中的内存泄漏 vs自带

    具体代码如下

    	/////////////// detect memory leak ///////////////
    	int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
    	tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
    	_CrtSetDbgFlag(tmpFlag);
    	//////////////////////////////////////////////////
    

    如果存在内存泄漏,在程序运行结束后,下方的输出栏就会显示相应的报错信息,具体效果如下图:

    经过一番调试检查,果然找到了一个类中有一个指针没有释放。

  • 相关阅读:
    参考资料来自 懒兔子 的公众号
    Etcd
    zookeeper 杂记
    十二五
    防火墙
    APScheduler
    docker管理工具protainer
    java学习笔记
    linux学习笔记1
    [POI2007]ZAP-Queries
  • 原文地址:https://www.cnblogs.com/DM-Star/p/8509727.html
Copyright © 2011-2022 走看看