これは、ヒープ、スタック、フリー店、グローバル/スタティックメモリにおけるC / C ++と一定のメモリ領域コードセグメントのデータセグメントは.bssを論じています。

これは、ヒープ、スタック、フリー店、グローバル/スタティックメモリにおけるC / C ++と一定のメモリ領域コードセグメントのデータセグメントは.bssを論じています。

ヒープ:メモリはmallocで割り当てられたというように、彼とヒープが非常に似ていますが、自分たちの生活を終了して自由であるのものをそのブロック。

スタック:ストレージ領域は、コンパイラによって割り当てられたものを必要なときに、自動的に不要になった変数をクリアしています。通常、ローカル変数、関数、その他のパラメータである変数。ユーザー仮想アドレス空間の上部に位置する1つのプロセスでは、ユーザスタックがあり、コンパイラは、関数が呼び出された達成するために使用しています。そして、スタック、ユーザスタックは、プログラム実行中に動的に伸縮することがあります。

無料店舗:新しい、新しい一般的には、削除に対応するであろう、私たちのアプリケーションによって制御するため、それらの放出コンパイラを気にしないで割り当てられたメモリのものをそのブロック。プログラマが解放されていない場合は、プログラムの最後に、オペレーティングシステムが自動的に回復します。ヒープは、動的に伸縮することができます。

グローバル/スタティックメモリは、グローバルおよび静的変数は同じメモリ、以前のC言語に割り当てられ、初期化され、初期化されていないグローバル変数に分割され(、領域内のグローバルおよび静的変数を初期化しません初期化されていないオブジェクトストアにアクセスし、ボイド*を介して操作することができるがCで、そのような区別++)独自のシステム上のプログラムの終わりまでに放出されない、他の隣接する領域にグローバル変数と静的変数を初期化し、そしてそれら共同で同じメモリ領域を占有します。

一定の記憶領域は:これは、彼らが一定である店舗内の特殊な記憶領域である、(もちろん、あなたはまた、非合法的な手段で変更し、多くの方法することができます)を変更することは許されません

.bssのセグメント:BSSセクション(BSSセグメント)は、一般的にグローバル変数を初期化されていないストア・プログラムに使用されるメモリの領域を指します。BSSは、ブロックは、シンボルによって開始英語の略語です。BSSセグメントは、静的メモリアロケーションです。
データセグメント:データセグメント(データセグメント)は、一般的に格納プログラムに使用されるメモリの領域を指すグローバル変数を初期化します。データセグメントは、静的メモリアロケーションです。

コード・セグメント:コードセグメント(コードセグメント/テキストセグメント)は、一般的に実行される格納プログラムコードに使用されるメモリの領域を指します。これらの部分領域のサイズは、プログラムの実行前に、通常は読み出し専用のメモリ領域に属する同定されており、いくつかのアーキテクチャは、プログラムを変更することができます書き込むことができるコードセグメント、を可能とします。コードセグメントでも、文字列定数などの定数読み取り専用変数を含んでいてもよいです。コード・セグメント・データが複数のプログラムを実行するために、同じプロセスを複数のマシンに存在する場合、それらは同じコードを使用することができ、プログラムコードを格納しています。

公開された57元の記事 ウォン称賛28 ビュー4147

おすすめ

転載: blog.csdn.net/weixin_41747893/article/details/99339774