配列の初期化

解決


さばたん  2003-01-27 20:02:18  No: 2680

こんにちは。

(先日の「配列変数に格納」の続きなのですが)
Formを閉じる際に、配列を初期化させたく

{type - Public宣言部}で、
  ArrDelStr: array of String;

procedure TForm1.MyPro(var TestCode: AnsiString);
begin
  SetLength(ArrDelStr,length(ArrDelStr)+1);
  ArrDelStr[high(ArrDelStr)] := TestCode;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SetLength(ArrDelStr,0);
end;

と、してみました。
これではただ配列の長さを0にしているだけなので
明示的にメモリの開放などを行うべきでしょうか?
また、ヘルプを見てみたのですが、
GetMem・FreeMem・Initialize などを使うのが適切でしょうか?

お分かりの方いらっしゃいましたら、よろしくお願いします。


にしの  2003-01-27 21:53:42  No: 2681

たぶん、だいじょうぶでしょう。
配列の長さを0に変えても、前に確保したメモリは解放されませんから。
# 配列としての上限は変わります

メモリの解放が必要かどうかは、処理内容によってかわります。
たいていは気にしなくていいと思います。
確保できなくなれば、例外が発生するだけですし。


さばたん  2003-01-28 01:53:41  No: 2682

わかりました!

にしのさん、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加