C程式的記憶體布局

2021-08-22 11:36:51 字數 595 閱讀 9013

c程式的記憶體布局

c程式的典型記憶體表示由以下部分組成:

1.文字段(cpu 執行的機器指令)

2.初始化資料段(資料段)

3.未初始化的資料段(也稱bss段)

4.棧(自動變數以及每次函式呼叫時所需儲存的的資訊都放在棧中)

5.堆(通常在堆中進行動態儲存分配)

如下圖所示:

測試**

#include #include #include #define	array_size	40000

#define malloc_size 100000

#define shm_size 100000

#define shm_mode 0600 /* user read/write */

char array[array_size]; /* uninitialized data = bss */

intmain(void)

參考資料

[1].

[2].

c 程式的記憶體布局

對任何乙個普通c 程式來講,它都會涉及到 5種不同的資料段。常用的幾個資料段種包含有 程式 段 程式資料段 程式堆疊段 等。不錯,這幾種資料段都在其中,但除了以上幾種資料段之外,程序還另外包含兩種資料段。下面我們來簡單歸納一下程序對應的記憶體空間中所包含的 5種不同的資料區。段 段是用來存放可執行檔...

C程式的記憶體布局

乙個c程式一直以來都是由以下5個段 pieces 組成 正文段。這是由cpu執行的機器指令部分。通常,正文段是可共享的,所以即使執行的程式 如文字編輯程式 c編譯程式 shell等 在儲存器中也只需有乙個副本 否則會造成資源浪費,試想如果開同樣的程式100個,每個正文段都要乙個相同副本 另外,正文段...

C 程式的記憶體布局

乙個c c 源程式經過編譯之後,其應用程式使用的記憶體可劃分為一下幾個部分 1 區 區存放函式體的二進位制 可執行檔案載入之後,就存放在程序的 區。這部分分區域是唯讀的,如果試圖修改,將導致執行時錯誤。一般來說,程式的 區存放的是程式的可執行 在某些特殊情況下,一些重要的資料也可以放入 區,以防止錯...