Вниз
Скачать: CL | DM;

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

 
Lkan   (2004-01-16 07:16) [0]

В процедуре исп-ся динамический массив, обязательно ли при выходе из оной делать SetLength(Massiv,0) или он сам удаляется?


 
Романов Р.В. ©   (2004-01-16 07:21) [1]

Если массив объявлен в этой процедуре, то дельфи сама позаботится об обосвобождении памяти занимаемой массивом.


 
Тимохов ©   (2004-01-16 10:55) [2]

Хочу добавить:

Если массив объявлен в этой процедуре и не был сохранен в структуре за пределами процедуры, то дельфи сама позаботится об обосвобождении памяти занимаемой массивом.


 
Семен Сорокин ©   (2004-01-16 11:01) [3]

2Lkan
а память под массив можно очищать и так: Massiv := nil;


 
ALEIIIKA ©   (2004-01-16 11:08) [4]

или так
Finalize(Massiv);


 
Lkan   (2004-01-16 12:11) [5]

спасибо за инфу


 
Piter ©   (2004-01-16 14:05) [6]

>Если массив объявлен в этой процедуре и не был сохранен в структуре за пределами процедуры

это как это? Если массив объявлен локально для этой процедуры, то по выходу из процедуры он будет автоматически уничтожен, как тип с управляемым временем жизни


 
Тимохов ©   (2004-01-16 14:07) [7]

type
ta = array of integer;
var
a: ta;
procedure p();
var
a1: ta;
begin
setlength(a1, 1);
a := a1; // фактически копия ссылки на
// массив с увеличением счетчика ссылок
// удаление массива не произойдет
end;


 
Piter ©   (2004-01-16 14:29) [8]

а-а-а, ну да, конечно.



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

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



Память: 0.46 MB
Время: 0.035 c
1-93478
Seldon
2004-01-08 22:26
2004.01.29
Где происходит Exception?


1-93414
Plt
2004-01-19 12:41
2004.01.29
язык интерфейса


14-93669
Teren
2004-01-07 02:16
2004.01.29
Странно...


1-93543
Mishenka
2004-01-17 02:39
2004.01.29
Как убрать с экрана панель задач?


1-93573
a123
2004-01-17 09:35
2004.01.29
ActionMainMenuBar




   Наверх