ヒープ領域 【heap area】 ヒープメモリ / heap memory / ヒープエリア
概要
ヒープ領域(heap area)とは、コンピュータプログラムが実行時に使用するメモリ領域の一つで、任意に確保や解放を繰り返すことができるもの。単に「ヒープ領域」と略すこともあるが、データ構造の一種に「ヒープ」があるため文脈に注意する必要がある。プログラムの実行時にオペレーティングシステム(OS)側から一定の大きさのメモリ領域がヒープ領域用として割り当てられ、その中からプログラム側が任意のタイミングで必要な容量を明示的に宣言してデータやオブジェクトなどの保存用に確保することができる。
スタック領域などと異なり用途や確保・解放のタイミングが決められておらず、プログラム側の都合で好きなように使うことができる。不要になったら明示的に解放処理を行うことで保存されたデータは破棄され、再び別の用途のために確保できるようになる。
確保した領域を利用した処理が終わって不要になったのに解放し忘れてしまい、確保したまま使われることのない無駄な領域ができることがある。これが繰り返されると次第にヒープ領域が圧迫され、最終的には自由に使える容量が枯渇してしまう。
プログラミング言語によっては、仮想マシン(VM:Virtual Machine)などの実行環境側で不要と判断した領域を強制的に解放して再利用する場合がある。このような仕組みを「ガベージコレクション」(GC:Garbage Collection)という。
(2024.9.4更新)