ICDロゴ

ヒープ (heap)

最終更新日: 2007/05/10

 プログラムで利用するデータ領域の一種。ヒープ(heap)とは「積み重なる」「堆積(たいせき)する」という意味。プログラムの実行につれて動的に確保され、その領域が順次拡大するさまから、ヒープと呼ばれる。

 ヒープは、プログラムで利用する動的なデータ領域を確保するために利用される。例えばファイルからデータを読み込んでソート処理する場合、実行時にならないと要素数が確定しない。そのため、あらかじめ要素数よりも十分大きなデータ領域を用意しておく方法があるが、これでは無駄が多い。こういう場合は、データを読み込むごとにヒープ上に確保したデータ領域へ保存すればよい。こうすれば実際に必要なサイズだけを確保することができ、メモリの利用効率がよい。

 ヒープと似た概念としてスタックがあるが、その利用方法は少し異なる。スタックでは最後に使ったものが先に解放されるが、ヒープでは確保すると解放の順序に特に関連性はない。ヒープ領域の途中が解放されると、その部分は未使用領域となり、必要に応じて再利用される。ヒープの利用が進むにつれ、未使用領域が増えるが、コンピュータ言語やシステムによってはガーベジ・コレクションを行い、ヒープ領域を整理して、使用領域済み領域が連続するように並べ替えたりすることがある。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ