H2244 ポインタ型には初期化/終了処理は必要ありません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

終了処理が必要ない Pointer 型に対して初期化/終了処理を行おうと,標準手続き Initialize/Finalize を呼びました。


program Produce;

  var
    str : String;
    pstr : PString;

begin
  str := 'Sharene';
  pstr := @str;
  Finalize(pstr);  (*注意: これ以降で str を使用してはならない*)
end.

この例では,ポインタ pstr が Finalize 手続きに渡されています。ポインタには終了処理が不要なので,ヒントが作成されます。


program Solve;


  var
    str : String;
    pstr : PString;

begin
  str := 'Sharene';
  pstr := @str;
  Finalize(pstr^);  (*注意: これ以降で str を使用してはならない*)
end.

この問題の解決方法としては,^ 演算子をポインタに適用して終了処理に渡します。