スタック領域vs臀部領域

1362 ワード

プログラムがオペレーティングシステムから割り当てる代表的なメモリ領域は4種類ある.
1. 코드영역
2. 데이터 영역
3. 스택(stack) 영역
4. 힙(heap) 영역

メモリ空間構造

1.コード領域

  • プログラムコードを格納領域(テキスト領域)
  • プログラムの開始と終了まで、メモリに残ります.
  • 2.データ領域

  • グローバル変数とstatci変数が割り当てられた領域.
  • プログラムは起動と同時に割り当てられ、プログラムが終了するまでメモリから消えない.
  • 3.スタック領域


  • メモリの選択領域は、関数呼び出しに関連する領域変数とパラメータを格納する領域です.

  • 関数呼び出しとともに割り当てられ、関数呼び出しが完了すると破棄されます.

  • プログラムが自動的に使用する一時メモリ領域.

  • コンパイル時にサイズを決定します.

  • スタック領域は、格納されたデータをプッシュし、popによってデータを抽出する.

  • スタックは後入先出で動作するため、最も早く遅入したデータが表示されます.

  • スタック領域は、メモリの高アドレスから低アドレスの方向に割り当てられます.

  • 限度があり、過剰挿入はできません.(->柔軟性が低い)
  • 4.お尻領域


    (必要に応じてメモリを動的に割り当てる場合に使用)

  • メモリのhip領域は、ユーザが直接管理できるメモリ領域である.

  • hip領域は、ユーザによってメモリ領域を動的に割り当て、解放する.
    ->malloc()またはnew演算子で割り当て、free()またはdelete演算子で無効にします.

  • hip領域はメモリの低アドレスから高アドレスの方向に割り当てられる.
    実行時にサイズを決定します.
  • Stack vs Heap


    スタック領域が大きいほどheap領域が小さくなり、heap領域が大きいほどスタック領域が小さくなります.
    スタックとhipの割り当て速度を比較します.
    スタックは割り当てられた空間を使用し、hipはユーザが割り当てられた空間に基づいているため、スタックの速度はずっと速い.
    (スタックスペースが小さいだけで、すべてのアプリケーションでスタックを使用することはできません.)