![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
dimavit |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.8.2012 Репутация: нет Всего: нет |
В цикле постоянно создаются и удаляются объекты, входящие в динамический массив. Удаление производится при помощи такой процедуры:
Не может ли возникнуть ситуация, при которой в данном случае объект не полностью освобождает память? Дело в том, что при определенном количестве шагов цикла возникает ошибка "Out of system resources". При этом в массиве имеется всего от 5 до 20 объектов. А в ходе всей работы их было создано и удалено тысяч 15. Объекты представляют собой созданный класс |
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Может. А где освобождение памяти под объект? Вы уменьшаете размер массива на 1, но при этом объект остаётся в памяти. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
dimavit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.8.2012 Репутация: нет Всего: нет |
Я предполагал, что объект должен освобождать память будучи удаленным из массива. Но подозрение было, что возможно и нет. Значит оно подтверждается? |
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
используй TList а не массив, там обовсем подумали уже.
Добавлено через 4 минуты и 5 секунд Или если версия делфи свежая то можно generics использовать Добавлено через 7 минут и 47 секунд Проверить наличие утечки памяти можно с помощью
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
dimavit |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.8.2012 Репутация: нет Всего: нет |
Спасибо! |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
там есть решение проблемы постоянного перевыделения памяти, а удаления объекта при удалении элемента там нет
список владеющий объектами это TObjectList или TObjectList<T> -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |