C 學習筆記(六) 程式的記憶體模型

2021-10-13 19:07:30 字數 614 閱讀 1550

程式執行前有**區和全域性區,執行後才有棧區和堆區。

二進位制存放cpu執行的機器指令。

特點:共享(記憶體中只有乙份)、唯讀

存放全域性變數、靜態變數和常量等

常量包括字串常量和const修飾的常量

const修飾的常量包括const修飾的全域性變數和const修飾的區域性變數。const修飾的區域性變數不放在全域性區。

存放區域性變數,形參

不要返回區域性變數的位址。

程式設計師分配釋放,如果程式設計師不釋放,作業系統將會在程式結束後釋放。

new的資料放在堆區。

作用:動態申請記憶體

語法:資料型別 * 指標名 = new 資料型別;

作用:釋放申請的空間,已經釋放的記憶體空間不能再訪問

delete的語法:delete 指標名;

int

*p =

newint;.

..delete p;

new申請釋放陣列

int

*p =

newint[10

];..

.delete

p;

c 程式的記憶體模型

記憶體分為四個區域,不同區域存放的資料賦予不同的生命週期,靈活程式設計 區 存放函式體的二進位制 由作業系統進行管理 全域性區 存放全域性變數以及常量,由作業系統釋放 棧區 存放函式的引數值,區域性變數,由編譯器自動分配釋放 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 共...

C 程式的記憶體模型

c 的個人學習之路!認識記憶體模型,才能更好的理解cpp物件導向的實現 c 的記憶體可以劃分為四個大區域 意義 不同區域存放的資料,賦予不同的生命週期,提高程式設計的靈活性。程式編譯後,生成了可執行程式,該程式為執行前分為兩個區域 這兩個區域執行前就已經被系統劃分存在了,所以在任何時刻區域的資料被讀...

C 程式記憶體模型

區 存放函式體的二進位制 由作業系統進行管理的 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 記憶體分割槽的意義 不同的區域存放的資料,賦予不同的生命週期,給我們更大的靈...