![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Надо ли делать SetLength(Array,0)? [D7, WinXP]
Aleksandr. © (2005-03-05 16:57:00)Я работаю обычно с TStream через array of byte:
SetLength(Buf,Stream.Size)...
И после окончания раоты с ним делаю
SetLength(Buf,0).
А тут вдруг заклинился на мысли: а надо ли это, или менеджер кучи сам освободит память по выходу из метода?
Anatoly Podgoretsky (2005-03-05 18:11:00) [1]Нет метода, в котором объявлено, нет освобождения при выходе из него. Ну а если он чушь сказал, так на всякий случай, то я не виноват.
begin...end (2005-03-05 18:05:00) [2]> Anatoly Podgoretsky © (05.03.05 18:00) [6]
Я тоже так предполагаю, однако в исходном посте было сказано просто "из метода". В [3] я просто обратил на это внимание. На всякий случай.
Anatoly Podgoretsky (2005-03-05 18:00:00) [3]Из того метода, где массив объявлен.
begin...end (2005-03-05 17:55:00) [4]> Anatoly Podgoretsky © (05.03.05 17:53) [4]
Не знаю, ничего конкретного про область видимости переменной автор не сказал.
Anatoly Podgoretsky (2005-03-05 17:53:00) [5]begin...end © (05.03.05 17:36) [3]
А иначе к чему это упоминание или менеджер кучи сам освободит память по выходу из метода?
begin...end (2005-03-05 17:36:00) [6]> Aleksandr. (05.03.05 16:57)
См. [2], но, разумеется, это относится к случаю, когда переменная Buf является локальной в методе.
Anatoly Podgoretsky (2005-03-05 17:12:00) [7]Сам освободит.
clickmaker (2005-03-05 17:04:00) [8]array := nil;