電子書籍の厳選無料作品が豊富!

動的に確保したメモリをfree命令で解放しても、メモリをOSに返さない実装があると聞きました。仮想記憶を実装するOSに多く見られるそうですが、なぜ返さなくてよい実装なのですか。

A 回答 (1件)

C言語でのmalloc,free関連の話でしょうか?


その前提で話をしますが、freeはOSにメモリを返すではなくmallocなどで再利用可能な状態にするという仕様です。ですので元々からOSに返すことは約束されていません(そういう実装があってはいけないという意味ではないです)
OSに返さなければメモリリークになるのではないかと心配されるかもしれませんがOSはプロセスに割り当てたメモリは把握してますので、そのプロセスが終了すればOSには戻ります。
    • good
    • 0
この回答へのお礼

それでうまくいくような仕様だったのですね。ありがとうございます。

お礼日時:2013/01/30 21:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!