Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Работа с динамическим массивом   Найти похожие ветки 

 
RDS ©   (2006-01-05 15:28) [0]

При использовании динамических массивов пишем :

 SetLength(a,10);
 a[0]:=x;
 ........
 a[9]:=y;
 .......
 .......
 .......
 SetLength(a,5);

1) Что происходит с памятью, которую занимали элементы a[5]..a[9];
2) нужно ли каким-либо образом ее высвобождать;
3) нужно ли обнулять переменные a[5]..a[9] перед уменьшением длины массива.

Заранее спасибо.


 
begin...end ©   (2006-01-05 15:33) [1]

1) она освобождается
2) нет
3) нет


 
umbra ©   (2006-01-05 15:36) [2]

1) ничего, просто из а обратиться к ней уже нельзя.
2) нет
3) нет


 
begin...end ©   (2006-01-05 16:05) [3]

> umbra ©   (05.01.06 15:36) [2]

> 1) ничего, просто из а обратиться к ней уже нельзя.

Во-первых, с точки зрения менеджера памяти эта память становится свободной. Во-вторых, если тип элементов динамического массива требует финализации, то перед уменьшением длины массива лишние элементы финализируются. Например, если это массив строк, значения лишних элементов изменяются ещё до уменьшения массива. Поэтому вряд ли можно сказать, что с этой памятью ничего не происходит.


 
TUser ©   (2006-01-05 16:20) [4]

Если элементы массива - объекты, то им надо сказать Free.


 
TUser ©   (2006-01-05 16:26) [5]

Исключение - если за их уничтожение отвечает Owner или еще кто-то.



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
2-1135838204
mss
2005-12-29 09:36
2006.01.22
Ошибка в Interbase


14-1135354353
Werg
2005-12-23 19:12
2006.01.22
Преобразовать строку в отдельные слова!!


14-1135929811
Piter
2005-12-30 11:03
2006.01.22
Справка о болезни


8-1123418199
Nick Denry
2005-08-07 16:36
2006.01.22
Изменяющийся регион или скины как у Windows Media Player a


2-1135859627
ezorcist
2005-12-29 15:33
2006.01.22
Как упаковать файл WinRar-ом