11 C程式記憶體空間分配

2021-08-28 06:09:04 字數 565 閱讀 5788

bss段:(bss segment)通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。

資料段:資料段(data segment)通常是指用來存放程式中已初始化的全域性變數的一塊記憶體區域。資料段屬於靜態記憶體分配。

**段:**段(code segment/text segment)通常是指用來存放程式執行**的一塊記憶體區域。這部分區域的**屬於唯讀。在**段中,字串常量也屬於這部分。

堆(heap):堆是用於存放程序執行中被動態分配的記憶體段,它的大小並不固定,可動態擴張或縮減。

棧(stack):棧又稱堆疊,存放程式的區域性變數除此以外,在函式被呼叫時,棧用來傳遞引數和返回值等。由於棧的先進先出特點,所以棧特別方便用來儲存/恢復呼叫現場。

Linux程式記憶體空間分配

先來看一段簡單 include include int main 執行結果 這時另開乙個終端,輸入cat proc 10073 maps,出現如下顯示 實際上,第一行是 區所佔的記憶體空間,804800 804900,實際上幾乎所有的linux程式 段都是從804800開始的,第二行是全域性棧區所佔...

程式記憶體空間的分配

關於程式記憶體空間的分配 mcu的memory中分為不同的area,比如說rl78 g14的memory map如下圖 其中不同的memory area有不同的用途。按照從下向上的順序 1 code flash memory 這個顧名思義就是目標程式所佔據的位置。這裡應該更確切的說一下,程式中涉及到...

分配記憶體空間

void calloc size t nobj,size t size 分配足夠的記憶體給nobj個大小為size的物件組成的陣列,並返回指向所分配區域的第乙個位元組的指標 若記憶體不夠,則返回null.該空間的初始化大小為0位元組.char p char calloc 100,sizeof cha...