私が宣言した場合
PSomeStruct = ^TSomeStruct;
TSomeStruct = record
s1 : string;
end;
そして私は次のコードを実行します:
var
p: PSomeStruct;
begin
new(p);
p^.s1:= 'something bla bla bla';
dispose(p);
FastMM 4メモリマネージャは、メモリリークが発生したことを報告します(タイプ:文字列、データダンプ: "something bla bla bla")。ただし、呼び出す前にs1文字列を空に設定しても問題ありませんdispose
。
私が見つけた2番目の方法は、レコードタイプからクラスに変更するnew
ことです。次に、インスタンスを作成する代わりに、dispose
を呼び出す代わりにinstance.Free()
。弦を手動で掃除しなくても機能します。
電話をかけたときにDelphiで文字列を自動的にクリーンアップする方法はありますdispose
か?