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);
    	//////////////////////////////////////////////////
    

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

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

  • 相关阅读:
    BZOJ 3282: Tree( LCT )
    BZOJ 3713: [PA2014]Iloczyn( 枚举 )
    HDU3974
    CodeForces220B
    POJ2349
    HDU3038
    POJ1611
    IELTS
    POJ1125
    POJ2109
  • 原文地址:https://www.cnblogs.com/DM-Star/p/8509727.html
Copyright © 2011-2022 走看看