![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамические массивы
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), когда массив мне больше не нужен.