Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
3-1132755544
Ega23
2005-11-23 17:19
2006.01.22
GUID-поле в TClientdataSet - невозможно???


14-1135922363
КаПиБаРа
2005-12-30 08:59
2006.01.22
C наступающим Новым годом, Друзья!


3-1132777245
Serg1981
2005-11-23 23:20
2006.01.22
Подключение к SQL Server


11-1117925548
rofl
2005-06-05 02:52
2006.01.22
Kol Memo (Editbox) limited to 30000 bytes of text


2-1136542852
pvm
2006-01-06 13:20
2006.01.22
PChar в DLL




   Наверх