C 學習記錄 (2)記憶體分割槽

2021-10-23 05:41:15 字數 397 閱讀 2448

linux應用程式分割槽為:**段、資料段、堆、棧

c++分割槽為: **區、全域性區、堆、棧

存放函式體的二進位制**、由作業系統執行。

存放全域性變數、靜態變數和常量,由作業系統釋放。

**區和全域性區在程式執行前在有了,exe檔案。

存放程式設計師申請的變數,由程式設計師分配釋放的空間,如果程式設計師不釋放、程式結束會由作業系統釋放。

申請:new 釋放:delete

例子:申請:int *a = new int(100);初值為100 釋放: delete a;

申請:int *arr = new int[100]; 乙個長度為100的陣列 釋放:delete arr;

存放區域性變數(函式引數…),由編譯器分配釋放

堆區和棧區在程式執行後才會產生。

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

c 程式在執行時,將記憶體大方向劃分為4個區域 記憶體四區意義 不同區域存放的資料,賦予不同的生命週期,給我們更大的靈活程式設計 在程式編譯後,生成了exe可執行程式,未執行該程式前分為兩個區域 1.區 存放 cpu 執行的機器指令.區是共享的,共享的目的是對於頻繁被執行的程式,只需要在記憶體中有乙...

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

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

C 語言學習記錄 19 記憶體的分割槽模型

c 在執行時,將記憶體從大方向上劃分為四個區域,在這些不同區域中存放的資料,會被賦予不同的生命週期,以便我們靈活程式設計。1.區 由作業系統管理,用於存放函式體的二進位制 2.全域性區 用於存放全域性變數和靜態變數以及常量 3.棧區 由編譯器自動分配 釋放,存放函式的引數值和區域性變數等 4.堆區 ...