2009-10-08 17 views

答えて

11

は、言語固有の詳細がありますが、一般的な考え方は次のとおりです。

  • 静的:ブロックに入ったときに割り当てられた、のために存在する:プログラムの起動時に割り当てられ、
  • 自動プログラムの全体の生命のために存在しますそのブロックの継続時間

動的割り当てにはもう少し説明が必要です。割り当て時に割り当てられます(「new XXX」など)。 C++の(ほとんどの実装では)明示的に削除するまで存在します。 のほとんどはという新しい言語(Java、C#など)でガベージコレクタがアクセスできないと判断してから自動的に破棄されるまで存在します。

すべての言語に3種類の割り当てがあるわけではありません。場合によっては、Javaのように、割り当ての形式がサポートされていても、組み込み型の自動割り当てを許可するなどの制限がありますが、オブジェクト型(つまりクラスのインスタンス)の動的割り当てが必要です。

3

静的割り当ては、アプリケーションが最初にロードされたときに割り当てられたメモリです。このセクションのメモリは、そのアプリケーションでのみ使用されるように保たれ、プログラムが終了すると再び利用可能になります。

動的割り当ては、必要に応じて割り当てられ、不要になったときに解放/解放されるメモリです。ヒープとスタックは、動的に割り当てられるメモリ領域の例です。