• ベストアンサー

メモリーの管理

今まで、あまりメモリーのことを気にしないでプログラミングしていました。 今度、使用するメモリの容量を制限したプログラミングに挑戦しようと思っています。 最初にメモリーの容量を確保し、それ以上は使えないようにする方法を教えてください。 どんな関数を使うのが主流でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

メモリは スタック領域とヒープ領域からなっています。 スタック領域の設定はコンパイラに依ります。 VisualC++でのスタック領域の設定 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_.2f.f.asp ヒープ領域はmallocなんかで取得できる領域です。 WindowsAPIではHeapAllocですが、 最初にHeapAllocを一回だけ行って、そのなかでやりくりするだけでよいと思います。

noname#10832
質問者

お礼

回答ありがとうございます。 参考になりました。

その他の回答 (3)

回答No.4

おやめなさい。 システム全体のパフォーマンスを落とすことになるでしょう。プロは普通そういうことをしませんし、メモリ管理はOSのお仕事です。 SQLServer級の高度なアプリケーションを作るなら止めませんが・・・。

noname#10832
質問者

お礼

回答ありがとうございます。 そうなんですが・・・。 素人に任せるくらいならOSに任せるのが一番なんですね。

  • fibre102
  • ベストアンサー率20% (6/29)
回答No.3

最初にmallocなどで上限分確保する。 それを内部的に管理し、割り当て/解放を行えばよいと思います。 用途があらかじめ決まっているなら、制御ブロックなどとして必要な個数分割り当ててしまい、それを使いまわせばよいと思います。(キューにつないで、先頭から獲得、使い終わったら最後尾へ戻すなど)

noname#10832
質問者

お礼

回答ありがとうございます。

  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

mallocやreallocなどで動的にメモリを割り当てたらきちんと開放して、リソースオブジェクトも開放を忘れないようにするだけだと思います。 メモリリークはメモリの開放忘れが蓄積されて起きるものなので。

noname#10832
質問者

お礼

回答ありがとうございます。

関連するQ&A