Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамические массивы


default ©   (2004-07-29 13:19:00) 

Господа, ерундовский вопрос:
если в полях класса есть динамический массив и под него выделялась память каким-нибудь методом объекта, код генер-ый Delphi по сборке мусора сразу освободит память под динам-ий массив после смерти объекта или по окончанию работы приложения? (или потока в котором он был создан(не знаю как именно))


default   (2004-07-29 13:51:00) [1]

проверил, дейст-но освоб-ся сразу
понятно изначально было что чист-ся всё подобное при выходе за область вид-сти, но всё-таки хотелось убед-ся полн-ью


Palladin   (2004-07-29 13:49:00) [2]

После смерти. Присмерти уменьшится счетчик дин массива. Достигнет нуля и массива тоже покинет этот бренный мир, если ты конечно его никуда не передал/возвратил... Технология таже что и с длинными строками...


TUser   (2004-07-29 13:38:00) [3]

Компилятор Delphi это гарантирует. Примерно так же, как гарантировано освобождение памяти, занятой под локальные пеерменные. Массивы тоже когда больше не нужны - 'пропадают'.


default   (2004-07-29 13:33:00) [4]

TUser ©   (29.07.04 13:28) [1]
точно?


TUser   (2004-07-29 13:28:00) [5]

Вообще-то D освободит память, когда вызовешь деструктора (если, конечно, ты память выделял SetLength'ом). Но я все-таки стараюсь сам писать SetLength(Ar,0), когда массив мне больше не нужен.


Наверх

Титульная страница Поиск, карта сайта Написать письмо