C:動的確保の解放について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: C:動的確保の解放について

Re: C:動的確保の解放について

#3

by agunesu » 10ヶ月前

返答ありがとうございます。なんとなくロジックを理解することができました。

Re: C:動的確保の解放について

#2

by Bull » 10ヶ月前

まあ OS によるかもしれませんが、システム全体でのメモリリークはないと思っても良いです。
Windows や Unix系(Linux、Max OS を含む)では、プロセスが終了したらメモリは解放されますので、明示的に解放しないまま終了しても大丈夫です。
細かいこと言い出すと Windows で例えば、クリップボードに大きなデータをコピーしたままプログラムを終了してもそのまま残っているとかはありますが、ローカルヒープ(malloc などで確保したエリア)に関してはプロセスが終了すれば解放されますので、余り気にする必要はないです。

当然なことながらプロセスが終了しない限りはメモリが自動的に解放されることはないので、プロセス単位のメモリリークは注意しないといけないです。小さなテストプログラムならば問題ないことが多いですが、大きなプログラムで長時間稼働するものは気をつけないといけません。
メモリリークは見つけづらいバグの一つですので、動的に確保したものは(プログラムが終了するときも)必ず解放するようにした方が良いかもしれません。

C:動的確保の解放について

#1

by agunesu » 10ヶ月前

私がアルゴリズムの本で見たコードであったのですが、連結リストや木などで、動的確保(malloc)しているのにかかわらず最後には、解放(free)もせず終わっていたりするのですが、メモリリークがガンガン行われている気がするのですが、どうなのでしょうか?それとも気にするほどの物ではないと言うことで、解放していないのですか?

ページトップ