TMyCat= record
cName:string;
cAge:SmallInt;
end;
PMyCat=^TMyCat;
var
MainFrm: TMainFrm;
implementation
{$R *.dfm}
procedure TMainFrm.Button1Click(Sender: TObject);
const max=1000000;
var
i:Integer;
ls:TList;
p:PMyCat;
begin
ls := TList.Create;
for i:=0 to max do
begin
p:=GetMemory(SizeOf(TMyCat));
SetLength(p^.cName,250);
p^.cName := 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
ls.Add(p);
end;
for i:=0 to max do
begin
FreeMem(ls[i]);
end;
end;
第二次循环报错了,您没有正确释放内存,导致内存泄漏
望采纳