記憶體分割槽介紹 筆記

2021-10-09 07:42:59 字數 336 閱讀 4478

在程式沒有執行前,有幾個記憶體分割槽已經確定,雖然分割槽確定,但是沒有載入內容,程式只有執行時才載入記憶體:

text(**區):唯讀,函式。

data:初始化的資料區,全域性變數,static變數,文字常量區(唯讀)。

bss:沒有初始化的資料,全域性變數,static變數。

當執行程式,載入記憶體,首先根據前面確定的記憶體分割槽(text,data,bss)先載入,然後額外載入兩個區:

static(棧區):普通區域性變數,自動管理記憶體,先進後出的特點。

heap(堆區):手動申請空間,手動釋放,整個程式結束,系統也會自動**,如果沒有手動釋放,程式也沒有結束,這個堆區不會自動釋放。

記憶體動態分割槽分配 動態記憶體分配介紹

c語言的記憶體分配方式 堆和棧 基於快取的儲存器層次結構 當c程式在執行過程中需要額外虛擬記憶體時,可以使用動態記憶體分配器 dynamic memory allocator 動態記憶體分配器維護著乙個程序的虛擬記憶體區域,成為堆 heap 假設堆是乙個請求二進位制零的區域,它緊接在未初始化的資料區...

C 學習筆記(2) 記憶體分割槽模型

c 程式在執行時,將記憶體大方向劃分為4個區域 題外話 看到堆和棧的時候,想到了之前學習執行緒時的知識。乙個程序可以呼叫pthread creatre 函式建立多個執行緒。多個執行緒之間共享全域性變數,這就引出了執行緒之間同步的概念,有了條件,鎖等等機制。而各個執行緒之間的棧空間是獨有的。在程式編譯...

2015 08 24記憶體分割槽

1 記憶體區域的劃分 從低到高 1.棧區 2.堆區 重點 3.靜態區 全域性區 4.常量區 5.區 2 static intnumber 10 被static 修飾的全域性變數生命週期隨著程式的建立而建立,隨著程式的消失而消失 3 區域性變數 定義在函式內部的變數就叫做區域性變數,區域性變數都是儲存...