掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
こんな関数作る人はいないのか? (ID:25441)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
わかりました!(と思います) 関数を抜けた時点で開放されているんですね。 その値を何か変数で受けておけば値は保持されるし 不要になったら変数を開放すればよいと...ですよね ですから私が最初に出したサンプルコードはあれでよくて メモリリークはないわけですね。そういえば関数内で宣言した 変数は関数抜けた時点でなくなってますもんね、その理屈ですよね。 ああすっきりした。以前からコーディングをした後で全体を見直して ステップ数を減らすダイエットをやっていたんですが、このような コードはリークを起こすのではとびくびくしていたんです。 いろいろありがとうございました。 ...ところで <関数側> function test: TStringList; begin Result := TStringList.Create; Result.Add('OK'); end; <呼び出し側> showmessage(test.text); というのと <手続き側> procedure test(var list: TStringList); begin list.Add('OK'); end; <呼び出し側> var lst : TStringList; begin lst := TStringList.Create; test(lst); showmessage(lst.text); lst.Free; end; は同じ結果になると思うのですが、いろんな意味でどちら がベターでしょう? 皆さんはどちらを使われるんですか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.