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

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

Динамические массивы [D6, Win2k]


LongIsland ©   (2003-01-31 16:19:00) 

Существует ли какая-либо принципиальная разница между такими формами записи:
если
var
A: array of TSomeType;

то
A:=nil;
или же
SetLength(A, 0);
???


LongIsland   (2003-01-31 17:47:00) [1]


> uw © (31.01.03 17:23)

А я все думаю, где я это видел?:-)

Соррррри, пятница - день тяжелый, тяжелее понедельника:-)

СПАСИБО!


uw   (2003-01-31 17:23:00) [2]

Topic Dynamic arrays

Dynamic-array variables are implicitly pointers and are managed by the same reference-counting technique used for long strings. To deallocate a dynamic array, assign nil to a variable that references the arrayor pass the variable to Finalize; either of these methods disposes of the array, provided there are no other references to it. Dynamic arrays of length 0 have the value nil. Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.


LongIsland   (2003-01-31 16:41:00) [3]

:-)
> выделенный компилятором под массив будет потерян и освободится
> только при завершении программы

То есть плодимся и размножаемся:-)

Хорошо. А возможен ли случай, когда первый случай предпочтительнее?


Jel   (2003-01-31 16:34:00) [4]

Думаю да.

В первом случае указатель на кусок памяти, выделенный компилятором под массив будет потерян и освободится только при завершении программы.

Во втором случае будет изменен размер выделенного участка памяти, а освободившаяся память будет сразу возвращена системе.


Наверх

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