掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
こんな関数作る人はいないのか? (ID:25433)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
素朴な疑問ですがどなたかお分かりになりましたら。 戻り値がTStringListの関数を作ることはトラブルの元でしょうか?たとえば function test: TStringList; var i : integer; begin Result := TStringList.Create; {インスタンス作成} for i:=0 to 10 do begin {別に何でもいいんですけど} Result.Add(IntToStr(i)); end; end; 上の例で戻り値は0から10のリストとなりますが、私の考えだとResult.Free;をしていないので再びこの関数を呼び出すとエラーになると思うのですがところがどっこい通ります。関数の最後でResult.Free;としてしまうとリストが得られませんので意味がないのは当然ですが、それにしてもこれが通るということは呼び出すごとに新たにインスタンスが作られリストが増え続けていくのですか?いずれにせよプログラムを終了するときにはfreeとしなくてはまずいですよね。でもこの場合は何をfreeすればよいのでしょう?私のcreste,freeに関する認識が間違っているのでしょうか?下手な日本語ですが疑問のポイントがご理解いただけますか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.