我有一個簡單的代碼:爲什麼QApplication會泄漏內存?
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = testLeaks
TEMPLATE = app
SOURCES += main.cpp
HEADERS +=
FORMS +=
命令valgrind ./testLeaks
說,大約泄漏和打印如下:
==31276== HEAP SUMMARY:
==31276== in use at exit: 1,190,544 bytes in 7,267 blocks
==31276== total heap usage: 46,096 allocs, 38,829 frees, 6,716,079 bytes allocated
==31276==
==31276== LEAK SUMMARY:
==31276== definitely lost: 2,788 bytes in 11 blocks
==31276== indirectly lost: 7,065 bytes in 182 blocks
==31276== possibly lost: 318,238 bytes in 1,233 blocks
==31276== still reachable: 862,453 bytes in 5,841 blocks
==31276== suppressed: 0 bytes in 0 blocks
如果
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
return 0;
}
我使用Pro文件編譯Qt Creator中我評論QApplication,沒有泄漏。爲什麼這個班級泄漏?
哪個Qt版本? – lpapp
qt 5.2.0和qt創建者3.0.0 – user2717575
同樣,在這裏,但我得到:== 3005 ==錯誤摘要:0錯誤從0上下文(壓制:2從2)。我想你跳過了那部分。順便說一句,我不認爲320KB +「可能」的損失是不好的,它甚至可能來自於某種潛在的依賴關係。我想這需要更徹底的反省,最好是用一些靜態分析器運行。 :)另外,最好使用'valgrind --leak-check = full --show-leak-kinds = all -v。/ testLeaks' – lpapp