Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cプログラムのメモリレイアウト


Cプログラムのメモリレイアウトは以下のようになります。いくつかのレベルがあります。これらは-

です
  • スタックセグメント
  • ヒープセグメント
  • テキストセグメント
  • データセグメント

Cプログラムのメモリレイアウト

次に、これらのセクションの機能を見てみましょう。

Sr.No セクションと説明
1 スタック
プロセススタックには、メソッド/関数パラメータ、差出人住所、ローカル変数などの一時データが含まれています。これは、自動変数と関数パラメーターに割り当てられたメモリーの領域です。また、関数呼び出しの実行中にリターンアドレスを格納します。スタックは、LIFO(後入れ先出し)メカニズムを使用して、ローカル変数または自動変数、関数パラメーターを格納し、次のアドレスまたは戻りアドレスを格納します。差出人アドレスとは、関数の実行が完了した後に返されるアドレスのことです。このセグメントサイズは、ローカル変数、関数パラメーター、および関数呼び出しに従って可変です。このセグメントは、上位アドレスから下位アドレスに成長します。
2 ヒープ
これは、実行時にプロセスに動的に割り当てられたメモリです。これは、malloc()およびcalloc()呼び出しなどの動的メモリー・ストレージに割り当てられるメモリーの領域です。このセグメントサイズも、ユーザーの割り当てに応じて可変です。このセグメントは、低いアドレスから高いアドレスに成長します。
ここで、いくつかのサンプルプログラムを使用して、セグメント(データおよびbssセグメント)のサイズがどのように変化するかを確認しましょう。セグメントサイズは、コマンド「size」を実行することでわかります。
3 テキスト
これには、プログラムカウンターの値とプロセッサのレジスタの内容によって表される現在のアクティビティが含まれます。 .textセクションで表されます。これは、命令コードを格納するメモリ内の領域を定義します。これも固定エリアです。
4 データ
このセクションには、グローバル変数と静的変数が含まれています。これは、.dataセクションと.bssで表されます。 .dataセクションは、プログラムのデータ要素が格納されるメモリ領域を宣言するために使用されます。このセクションは、データ要素が宣言された後は展開できず、プログラム全体で静的なままです。
.bssセクションは、プログラムの後半で宣言されるデータ用のバッファーを含む静的メモリセクションでもあります。このバッファメモリはゼロで埋められています。

データセグメントは、さらに2つの部分に分割できます。

Sr.No セクションと説明
1 初期化されたデータセグメント
これは、初期化されていない静的変数とグローバル変数で構成されるオブジェクトファイルまたはプログラムの仮想アドレス空間の一部です。初期化されていないデータセグメントは、BSS(ブロック開始シンボル)セグメントとも呼ばれます。
2 初期化されていないデータセグメント
実行時に変数の値が変更される可能性があるため、これは読み取り/書き込みです。このセグメントも固定サイズです。

  1. RAM とは? | |ランダム アクセス メモリの定義

    RAM はランダム アクセス メモリの略です 、それはコンピューターを実行するために必要な非常に重要な電子部品です.RAMは、CPUが現在の作業データを一時的に保存するために使用するストレージの形式です.スマートフォン、PC、タブレット、サーバーなど、あらゆる種類のコンピューティング デバイスに搭載されています。 情報またはデータはランダムにアクセスされるため、データが保存されている CD-ROM やハードディスク ドライブなどの他の記憶媒体と比較して、読み取りおよび書き込み時間ははるかに高速です。シーケンシャルに取得するとプロセスがはるかに遅くなり、結果として、シーケンスの途中に保存され

  2. ファイル レコード セグメントが読み取れない場合の対処法

    「ファイル レコード セグメントが読み取れません」に遭遇したことはありますか エラー?はい、それを無視するという間違いを犯さないでください。データ損失につながるハード ドライブの障害などの重大な問題が発生する可能性があります。通常、ディスクのエラーをチェックするか、Windows を起動すると、エラーが表示されます。 注意 注:システムの起動中に File record segment is unreadable, エラーが発生した場合は、セーフ モードで起動する必要があります。セーフ モードで起動する方法については、このガイドを読み、画面上の指示に従ってください。 それでは、ファイル レ