|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 動 : [どう] 【名詞】 1. motion 2. change 3. confusion ・ 的 : [まと, てき] 【名詞】 1. mark 2. target ・ ロケーション : [ろけーしょん] 【名詞】 1. location 2. (n) location ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana)
動的メモリ確保 (動的メモリアロケーション・動的メモリ割り当て・dynamic memory allocation) とは、メモリ管理のひとつである、プログラムを実行しながら、並行して必要なメモリ領域の確保と解放を行う仕組みである。メモリの利用状況は、自身の実行状況や他のプログラムの実行状況に応じて常に変動するため、そらら動作に支障を来さぬよう必要なメモリ領域を適切なアドレスに対して臨機応変に確保・解放を行う必要がある。 ==概要== 現実のコンピュータでは、メモリに記憶できる情報の量は限られている。また、一つのプログラムやデータがメモリ全体を使いきってしまうことはできず、他のいろいろなプログラムやデータと分けあって使わなければならない。動的メモリアロケーションを使うことで、プログラムの実行時に必要な分だけ「メモリの分け前」 (記憶領域) を確保(allocate)し、また、記憶領域が不要になった時には、他のデータに再利用できるよう、解放 (release, free, deallocate) することができる。 自動メモリアロケーション(スタック上に変数の記憶領域を確保する方式)や静的メモリアロケーションと異なり、確保すべき領域のサイズやメモリが確保・解放されるタイミング(生存期間)は、プログラム実行時に決定される。したがって、これらが外部からの入力や計算の進行状況によって決まる場合、動的メモリアロケーションが必要になる。 確保するメモリ領域は連続している必要があるので、動的メモリアロケーションを実行するには、ヒープ領域(プログラムが自由に読み書きできる領域) から要求されたサイズの未使用領域のブロックを探す必要がある。メモリ確保は頻繁におこなわれる処理であり、扱うデータの量も大きいため、高速に行う必要があり難しい問題である。この問題には、様々なアルゴリズムが提案されてきた。 メモリ確保アルゴリズムの主な課題は、確保と解放の速度、メモリの利用効率 (いかに空き領域を少なくするか)、メモリのフラグメンテーションを防いだデフラグすること、小さなサイズのメモリを大量に確保した場合に起こるオーバヘッド(無駄遣い)を削減することなどである。(最後の問題は、必要な記憶領域だけでなく管理用の付加的情報(メタデータ)を保存するための領域が必要になるために起こる。) 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「動的メモリ確保」の詳細全文を読む スポンサード リンク
|