C程式在記憶體中的布局

2021-07-14 07:02:04 字數 426 閱讀 1202

程式在記憶體中的分布

程式執行後在記憶體中分為4部分:

**區,資料區,堆區和棧區

源**---已初始化的變數---未初始化的變數---堆空間---棧空間---命令列引數和環境變數

記憶體空間主要是堆疊:堆從低位址向高位址增長;棧從高位址向低位址增長。

棧空間是靜態的儲存空間:函式的引數,函式的區域性變數儲存在棧區,函式呼叫時,需要壓棧和出棧;堆空間是動態分配的儲存空間。

已初始化的變數和未初始化的變數還可以細分成:全域性資料區,常量資料區(const),靜態資料區(static),區域性變數資料區(棧上)

全域性變數的生命週期是整個程式的執行時間

區域性變數定義在函式內部,函式呼叫結束後,函式的區域性變數也就釋放了,也就是說,區域性變數在記憶體中沒有了。

程式在記憶體中的布局

c語言程式在記憶體中的分布 段 text 存放著程式的機器碼和唯讀資料 常量 全域性區 靜態區 由編譯器編譯時分配,程式執行結束後釋放 屬於靜態記憶體分配 在程式的二進位制檔案中,bss段不佔儲存空間,只有在載入到記憶體中才分配 data段 存放已初始化的靜態變數 static 修飾 和全域性變數 ...

程式在記憶體中的布局結構

並根據自己的理解做了整理 參考 bss段 bss segment 通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。儲存全域性未初始化的變數 資料段 資料段 data segment 通常是指用來...

c 中類中成員在記憶體中的布局

本篇部落格來分析c 中類成員的記憶體布局情況。首先我們來分析下成員函式的記憶體布局,然後分析下類中成員變數的記憶體布局。1.類中成員函式布局 c 類中的成員函式包括有虛函式和普通成員函式。首先我們先來討論下沒有虛函式的類中成員函式是如何布局的。1 只含有普通成員函式的類 乙個類也相當於乙個作用域。對...