動的メモリ確保 【dynamic memory allocation】 ダイナミックメモリアロケーション
概要
動的メモリ確保(dynamic memory allocation)とは、メモリ領域の割り当て方式の一つで、プログラムの実行中に新たに必要となったメモリ領域をオペレーティングシステム(OS)に依頼して確保する方式。プログラムが実行時に必要なデータの置き場所をメインメモリ上に確保する手法の一つで、実行開始後に、データの保存に必要なサイズの領域を確保して利用する方式である。処理が済んで必要なくなったら、別のデータの保存のために使い回せるよう、解放して空き領域に戻す。
C言語などでは解放処理はプログラマがコード中に明示的に記述しなければならないが、実行環境としてインタプリタや仮想マシン(VM)を用いる言語では、ガーベジコレクションなどの機構により必要ないと判断された領域を自動的に解放する仕組みが備わっていることが多い。
一般的に、「ヒープ領域」と呼ばれる、起動時には未使用であるメモリ領域の中から連続した領域を選択して割り当てられる。割り当てと解放を繰り返すと空き領域が分断され、大きなサイズの確保に支障をきたすこともある。
(2024.9.11更新)