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

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



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


14-1097581200
Koala
2004-10-12 15:40
2004.11.07
3D игра в 96 kb - как вам???


1-1098184658
Mishenka
2004-10-19 15:17
2004.11.07
Компонент как в Outlook Express?


14-1097815067
MBo
2004-10-15 08:37
2004.11.07
Пятница - время поломать голову над непростыми задачками.


14-1098340117
gn
2004-10-21 10:28
2004.11.07
Стало возможным по документу вычислить принтер




   Наверх