内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元直到程序结束(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。

Qt Creator 只是一个 IDE,本身不具备内存泄漏检测功能,所以需要使用第三方内存泄漏检测工具。

下面是介绍几个内存泄漏检测的工具和使用方法:

  • 在Windows操作系统下,如果编译器为Visual Studio,可以使用“Visual Leak Detector”。

    • 在代码中引入头文件:
    #include "vld.h"
    • 在项目文件(pro文件)中引入链接库依赖:
    INCLUDEPATH += "c:/vld/include"
    LIBS += -L"C:/vld/lib" -lvld
    • 对“new”和“malloc”操作都起作用。
  • 在Linux系统下,使用“Valgrind”。

    • 首先需要安装“Valgrind”。
    sudo apt-get install valgrind
    • 安装完成后重启Qt Creator,点击“菜单”->“分析”->“Valgrind Memory Analyzer”。
    • “Valgrind”没有“Visual Leak Detector”分析效率高,如果程序代码比较多,分析过程可能会比较漫长。
  • 在Windows操作系统下,如果使用的编译器是MinGW,还没有找到检测方法。

标签: Qt, Qt Creator, C++, 内存泄漏, valgrind

添加新评论