Я новичок в Mac и инструментах, я использую его для тестирования моего приложения Qt, я обнаружил много просочившихся объектов, почти все из них поступают из Qt lib.I очень хорошо проверяю мои коды, но не могу найти проблема. Чтобы избежать проблемы утечки памяти, я строго соблюдаю правила RAII, всегда позволяю классу обрабатывать ресурсы, убедитесь, что у каждого виджета есть родительский элемент, этот виджет без родителя (намеренный) будет защищать с помощью умного указателя или Qt:: WA_DeleteOnClose.
Чтобы исправить предупреждение об утечке памяти, я пишу очень простое приложение Qt и использую его как тест, инструменты всегда показывают, что у меня есть некоторые утечки памяти (как график) даже самые простые Создано приложение Qt.
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel w;
w.resize(320, 240);
w.show();
return a.exec();
}
График инструментов
Я немного изменяю коды и вижу, что инструменты для обнаружения утечек памяти будут продолжать расти или нет.
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
for(size_t i = 0; i != 100; ++i){
QLabel w;
w.resize(320, 240);
w.show();
}
QLabel w;
w.resize(320, 240);
w.show();
return a.exec();
}
Утечка памяти увеличивается, я очень надеюсь, что это ошибка инструмента, иначе я должен вернуться к Qt4 (и я не знаю, что у него будет такая же проблема или нет).I не думайте, что это простое приложение может пройти проверку качества магазина приложений Mac (OSX). Как я могу объяснить это явление? Если нет утечки памяти, я должен не вижу никакого сообщения об объекте утечки, я прав? Ошибка Qt5.0.2?