4つの地区でC / C ++のメモリを詳細C / C ++のチュートリアル、

コード領域1

CPUによって実行される機械語命令。コード領域は、通常、共有(すなわち、プログラムのさらなる実行を呼び出すことができ)、それは唯一のメモリ内のタグを持っている必要があり、頻繁に実行されるプログラムの目的のために共有することができます。コード領域は通常、読み取り専用、読み取り専用の理由は、それが誤ってそのプログラム命令を修正しないようにすることです。また、エリアコードは、ローカル変数情報を計画しています。

概要:あなたが書いたすべてのコードは、コード領域に入れられますコード領域の特性が共有され、読み取り専用です。

2グローバル領域

グローバル・ゾーンに記憶される主なデータは、(例えば文字列定数のような)グローバル変数、静的変数、定数

グローバル領域、静的、データ領域、グローバル静的エリア、静的なグローバルエリア:グローバルゾーンには多くの名前があります。

この部分は、データ領域とbss領域に細分化することができます

2.1データ領域

メインゾーンに格納されたデータは、すでにグローバル変数、静的変数と定数を初期化されます

2.2 BSS領域

プログラム実行システムが自動的に0またはNULLに初期化される前に主記憶領域BSS初期化されていないグローバル変数、静的変数、これらの初期化されていないデータであります

2.3定数領域

定常領域は、グローバル領域に分割された小領域、格納されている定数、等CONST修飾文字列定数としてグローバル変数であります

次のようにVSの結果では、次のとおりです。

概要:グローバル領域は、グローバル変数、静的変数と定数に保存されています

生成プログラムは二つの領域、スタック領域とヒープ領域によって実行された後

3スタック領域(スタック)

後者のスタックは、メモリ構造の外に前進さコンパイラ、記憶機能のパラメータ、戻り値、ローカル変数によって割り当て自動的に解放されます。リアルタイムロードとリリースプログラムが実行されているので、アプリケーションのためのローカル変数のライフサイクルは、スタック領域の長さを解放します。

次のように業績対

4ヒープ(ヒープ)

ヒープが大型コンテナで、その能力はスタックよりもはるかに大きいですが、スタックは注文後、高度なアウトようではありません。動的なメモリ割り当てのために。BSSは、スタックメモリ領域におけるスタック領域の間に位置しています。一般的には、プログラマは解放しない場合は、プログラマによって割り当てられたプログラムの終了時に回収され、オペレーティングシステムによって解放。

次のように業績対:

我々はいくつかのケースで一緒に実行するときには、各地域の区分のメモリは非常に組織されて見ることができます。各不干渉領域は、データのアドレス領域は非常に近いです

公開された682元の記事 ウォンの賞賛1391 ビュー171万+

おすすめ

転載: blog.csdn.net/itcast_cn/article/details/105203991