コンテンツにスキップ

Memory

  • 低いアドレスから高いアドレスの方向に並びます。
  • ヒープより上の領域はランタイム動作や開発者の設計判断と深く関わります。
+---------------------+ ← 高位アドレス
| Stack | (関数呼び出しとローカル変数)
+---------------------+
| Heap | (動的メモリ new / malloc)
+---------------------+
| BSS Segment | (未初期化のグローバル / 静的変数)
+---------------------+
| Data Segment | (初期化済みのグローバル / 静的変数)
+---------------------+
| Text Segment | (プログラム実行コード)
+---------------------+ ← 低位アドレス
  • 関数呼び出し時にローカル変数が保存される領域です。
  • 非常に高速で、サイズ制限はありますが関数終了時に自動で解放されます。
  • new キーワードで生成したオブジェクトが保存される領域です。
  • GC によって管理されるため、寿命は不確定です。
  • Unity で GameObject を生成すると Heap に配置されます。