Russian Qt Forum
Ноябрь 02, 2024, 12:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Немного про утечки памяти  (Прочитано 2193 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Декабрь 16, 2010, 13:12 »

Решил свой проект, проверить на утечки памяти, и обнаружил интересную вещь, при создании виджета в списке и при по следующем удалении освобождается не вся память.

Вот пример кода
Код:
    QList<QWidget *> listWidget;

    for (int i = 0; i < 10; ++i)
        listWidget.append(new QWidget());

    while(!listWidget.isEmpty())
        delete listWidget.takeFirst();

с помощью дебагера вижу что освобождается не вся память, а если тоже самое сделать с int то все хорошо. Пример кода прилагаю в аттаче. А и собственно вопрос Улыбающийся С чем это может быть связано и как лечить? Есть подозрение что Widget при создании тупо копируется ,а память не освобождается. Или освобождается ,но где то внутри и этого не видно. Стоит ли обращать внимание на эту тему?

Вывод дебагера видно в файле memoryleak.txt и debugmemorylog.txt ф папке с бинарником, собирал с помощью MinGW, Qt 4.7.1
Записан
sendevent
Гость
« Ответ #1 : Декабрь 16, 2010, 13:44 »

WinXP Pro SP3, MSVC 8.0, Qt 4.6.3:
Цитата: memoryleak.txt
-----------------------------------------------------------
Total Unfreed: 0 bytes
В debugmemorylog.txt allocated/freed совпадают попарно.
С qDeleteAll картина та же.
Или не то смотрю?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Декабрь 16, 2010, 13:50 »

Смотришь то, возможно есть разница в компиляторе, я собирал с помощью MinGW.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.108 секунд. Запросов: 23.