| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Out of system resources |
| Автор: dimavit 17.8.2012, 10:35 | ||
В цикле постоянно создаются и удаляются объекты, входящие в динамический массив. Удаление производится при помощи такой процедуры:
Не может ли возникнуть ситуация, при которой в данном случае объект не полностью освобождает память? Дело в том, что при определенном количестве шагов цикла возникает ошибка "Out of system resources". При этом в массиве имеется всего от 5 до 20 объектов. А в ходе всей работы их было создано и удалено тысяч 15. Объекты представляют собой созданный класс |
| Автор: Illusion Dolphin 17.8.2012, 10:38 | ||
Может. А где освобождение памяти под объект? Вы уменьшаете размер массива на 1, но при этом объект остаётся в памяти. |
| Автор: dimavit 17.8.2012, 11:04 | ||||
Я предполагал, что объект должен освобождать память будучи удаленным из массива. Но подозрение было, что возможно и нет. Значит оно подтверждается? |
| Автор: Frees 17.8.2012, 11:11 | ||
| используй TList а не массив, там обовсем подумали уже. Добавлено через 4 минуты и 5 секунд Или если версия делфи свежая то можно generics использовать Добавлено через 7 минут и 47 секунд Проверить наличие утечки памяти можно с помощью
|
| Автор: dimavit 17.8.2012, 11:24 | ||||
Спасибо! |
| Автор: bems 17.8.2012, 12:14 |
| там есть решение проблемы постоянного перевыделения памяти, а удаления объекта при удалении элемента там нет список владеющий объектами это TObjectList или TObjectList<T> |