- ベストアンサー
メモリーの管理
今まで、あまりメモリーのことを気にしないでプログラミングしていました。 今度、使用するメモリの容量を制限したプログラミングに挑戦しようと思っています。 最初にメモリーの容量を確保し、それ以上は使えないようにする方法を教えてください。 どんな関数を使うのが主流でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
メモリは スタック領域とヒープ領域からなっています。 スタック領域の設定はコンパイラに依ります。 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を一回だけ行って、そのなかでやりくりするだけでよいと思います。
その他の回答 (3)
- tikisukeman2
- ベストアンサー率32% (32/99)
おやめなさい。 システム全体のパフォーマンスを落とすことになるでしょう。プロは普通そういうことをしませんし、メモリ管理はOSのお仕事です。 SQLServer級の高度なアプリケーションを作るなら止めませんが・・・。
お礼
回答ありがとうございます。 そうなんですが・・・。 素人に任せるくらいならOSに任せるのが一番なんですね。
- fibre102
- ベストアンサー率20% (6/29)
最初にmallocなどで上限分確保する。 それを内部的に管理し、割り当て/解放を行えばよいと思います。 用途があらかじめ決まっているなら、制御ブロックなどとして必要な個数分割り当ててしまい、それを使いまわせばよいと思います。(キューにつないで、先頭から獲得、使い終わったら最後尾へ戻すなど)
お礼
回答ありがとうございます。
- ggaogg
- ベストアンサー率43% (38/88)
mallocやreallocなどで動的にメモリを割り当てたらきちんと開放して、リソースオブジェクトも開放を忘れないようにするだけだと思います。 メモリリークはメモリの開放忘れが蓄積されて起きるものなので。
お礼
回答ありがとうございます。
お礼
回答ありがとうございます。 参考になりました。