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

Вниз

TList.Free   Найти похожие ветки 

 
edge   (2004-10-22 16:12) [0]


procedure TForm1.FormButton1Click(Sender: TObject);
type
PMyList = ^AList;
AList = record
  I: Integer;
  C: Char;
end;

var
MyList: TList;
ARecord: PMyList;
B: Byte;
Y: Word;

begin
MyList := TList.Create;
try
  New(ARecord);
  ARecord^.I := 100;
  ARecord^.C := "Z";
  MyList.Add(ARecord);
  New(ARecord);
  ARecord^.I := 200;
  ARecord^.C := "X";
  MyList.Add(ARecord);

 for B := 0 to (MyList.Count - 1) do
 begin
   ARecord := MyList.Items[B];
   Dispose(ARecord);
 end;

finally
  MyList.Free;
end;
end;


Пример взят из хелпа. Обязательно ли писать
for B := 0 to (MyList.Count - 1) do
begin
  ARecord := MyList.Items[B];
  Dispose(ARecord);
end;
ведь Free освобождает память и уничтожает указатели. Если обязательно, то можно вместо цикла написать MyList.Clear?


 
begin...end ©   (2004-10-22 16:16) [1]


> Обязательно ли писать

Если хочешь, чтобы память освободилась, - обязательно.

> ведь Free освобождает память и уничтожает указатели

Память, занимаемая указателями, освобождается, в отличие от тех участков памяти, на которые эти указатели указывают.


 
Digitman ©   (2004-10-22 16:20) [2]


> Free освобождает память и уничтожает указатели


указатели - да, уничтожает.
но TList не делает никаких предположений на счет того, ЧТО конкретно ассоциировано под данным указателем ... ты вполне мог создать объект и записать его адрес в элемент списка, а мог выполнить и Getmem() и New() .. для каждого случая класс TList должен был бы знать , какую из "разрушающих" п/пргограмм он должен был бы вызывать в каждом из конкретных случаев ... НГО ! класс TList хранит ТОЛЬКО адреса, и знать не5 знает, на ЧТО КОНКРЕТНО эти адреса указывают ... поэтому только ты сам волен определять, какую из "разрушающих" п/программ следует вызывать в том или ином конкретном случае



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1098619830
Чувак
2004-10-24 16:10
2004.11.07
Проблема с pdf


14-1098029285
Gero
2004-10-17 20:08
2004.11.07
Всем сисадминам


14-1098192615
Knight
2004-10-19 17:30
2004.11.07
Кто пользуется программой - Налогоплательщик ЮЛ?


3-1097046463
Pashkerton
2004-10-06 11:07
2004.11.07
DateTime в SQL 2000 Server


4-1094197289
Gluk
2004-09-03 11:41
2004.11.07
Загрузка процессора