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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Утечка памяти при удалении объектов  (Прочитано 2563 раз)
merke
Гость
« : Октябрь 18, 2011, 19:16 »

Всем привет!!!

Имеется
Код
C++ (Qt)
QMap<QTcpServer*, QTcpSocket*> mainMap;

По мере работы сервера туда добавляются указатели на сокеты.

Наступает момент, когда нужно по удалять к едрени фени заданное количество сокетов:

Код
C++ (Qt)
QMapIterator<QTcpServer*, QTcpSocket*> it(mainMap);
 
 
                   for (int i = 0; i < 300; i++)
                       {
                           if (it.hasNext())
                               {
                                   it.next();
                                   it.key()->close();
                                   it.value()->close();
 
                                   QTcpSocket *so = it.value();
                                   QTcpServer *s = it.key();
 
                                   mainMap.remove(s);
 
                                   delete so;
 
                                   delete s;
                               }
                       }
 

Удаление то проходит, а память не освобождается. Не могу понять в чем дело. Подскажите, в чем может быть причина проблемы?
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #1 : Октябрь 18, 2011, 19:21 »

Освобожденная память остается зарезервированной для процесса.  Как только в системе будет дифицит памяти, ОСь ее заберет.
Записан

merke
Гость
« Ответ #2 : Октябрь 18, 2011, 19:22 »

Большое спасибо!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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