• ベストアンサー

自アプリ内のメモリを管理したい

こんにちは。 現在C/C++でプログラムを組んでいます。 C/C++でメモリを確保、開放するにはmalloc、new、free,deleteを使うわけですがアプリケーションが開始された時点で、ある一定のメモリを確保しておいてそのメモリから分け与えたりデフラグしたりして自分のアプリで使うメモリを管理したいと思っています。 BYTE* g_allMemory;//グローバル変数 g_allMemory = new BYTE[1024]; プログラムを実行した時点でこのようにメモリを確保しておき要所要所で自作関数を利用してメモリを分け与えたりデフラグしたりして使えるようにしたいのです。 しかしデフラグした瞬間に変数のアドレスがずれてしまって使い物になりません。 これを解決したいのですがアドバイスやお勧めのホームページや参考文献などがあったら紹介をお願いします。

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

  • ベストアンサー
  • kent85
  • ベストアンサー率52% (38/73)
回答No.2

#1さんが簡潔に述べていらっしゃるとおりです。 組み込みでRAMがあんまり無いのです…の世界向けではないですけど http://www.ibm.com/developerworks/jp/linux/library/l-memory/ ガベージコレクションあたりのキーワードで探すといろいろな情報に出会えると思います。 http://www.net.c.dendai.ac.jp/~takumi/

0xEF
質問者

お礼

ありがとうございます。 2つのHPを参考に少しがんばってみたいと思います。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

メモリブロックへのポインタを直接扱うのではなく、ワンクッション置いてハンドルで操作するようにしてください。 そのままではシンタックスが面倒なので、適当なスマートポインタを実装すれば解決します。

0xEF
質問者

お礼

ありがとうございます。 前にも同じことを考えていたのですが今このアドバイスを受けてよい方法が思い浮かびました。 もう少しがんばってみます。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A