以下是一個簡單的示例;
type
TR = record
Num: Integer;
end;
TL2 = TList<TR>;
TL1 = TList<TL2>;
procedure Init();
var
L1 : TL1;
L2 : TL2;
R : TR;
i : Integer;
begin
L1 := TL1.Create;
for i := 0 to 10 do
begin
R.Num := i;
L2 := TL2.Create;
L2.Add(R);
L1.Add(L2);
end;
end;
L2這個變數,不能在L1.Add后釋放,這樣L2反復的Create讓我很不安,求教這樣寫是否正確?
uj5u.com熱心網友回復:
一分都沒有了,只能發這了,抱歉!uj5u.com熱心網友回復:
鏈表套鏈表 這個資料型別比較少見,并且L2鏈表只有一個資料,
uj5u.com熱心網友回復:
L2當然不能釋放了,L1.Add(L2)后,L1來管理L2了,L1釋放時,自動釋放所有L2(默認)uj5u.com熱心網友回復:
sorry,錯了,LIST沒有自動管理,TobjectList才自動管理。這個和LIST添加指標類似,L1釋放時,先回圈釋放L2
uj5u.com熱心網友回復:
多謝樓上的回答,確實,最后回圈釋放L2,再釋放L1即可,非常感謝轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41265.html
標籤:非技術區
