先頭へ戻る

動的記憶域期間 | Programming Place Plus 用語集

Programming Place Plus トップページ用語集

先頭へ戻る

名称

解説

プログラミングにおける記憶域期間のうち、その期間が、明示的な動的メモリ割り当てと解放によって決まるもののことです。

記憶域期間とは、変数などのオブジェクトと、メモリ上の実体との結びつきが維持され、が記憶されている期間のことです。ただし、プログラミング言語によって呼び方は異なることがあります。記憶域期間はおもにC言語や C++ での呼び方です。

ダイナミックメモリアロケーション(動的メモリ割り当て)によって確保・解放されるメモリ領域は、動的記憶域期間を持ちます。確保(アロケート)が行われた時点で記憶域期間が開始され、解放(デアロケート、リリース)が行われた時点で記憶域が終了します。

アロケートを行う関数演算子は、割り当てたメモリ領域にアクセスできるようにメモリアドレスなどの情報を返しますが、それを変数で受け取った場合に、その変数が動的記憶域期間を持つということではありません。たとえば、その変数がグローバル変数であるのなら、その変数自身の記憶域期間は、静的記憶域期間です。

C言語の場合

C言語では、割付け記憶域期間 (allocated storage duration) と呼ばれます。

malloc関数などの、動的メモリ割り当てを行う関数によって確保されたストレージ(メモリ領域)は、割付け記憶域期間を持ちます。割付け記憶域期間は、free関数によって解放されるまで続きます。

C++ の場合

C++ では、動的記憶域期間 (Dynamic storage duration) と呼ばれます。

new式によって作成され、delete式によって削除されるオブジェクトのためのストレージ(メモリ領域)は、動的記憶域期間を持ちます。実際にこの領域を確保するのは operator new() であり、解放は operator delete() が行います。

C++ の new や delete に関する解説は、C++編【言語解説】第14章第36章にあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー