C 記憶體筆記

2021-10-03 05:29:12 字數 482 閱讀 2003

乙個程式本質上由bss段、data段、texe段,三個組成。

靜態記憶體——bss——未初始化的全域性變數的一塊記憶體區域。

靜態記憶體——資料段——已初始化的全域性變數。

**段:——用來存放程式執行**——唯讀。

堆(heap)——一般新分配的記憶體如malloc就是堆擴大

棧(stack)——使用者存放程式臨時建立的區域性變數。

static 無論是全域性變數還是區域性變數都儲存在全域性/靜態區域,在編譯期就為其分配記憶體,在程式結束時釋放。

const 全域性變數存放在唯讀資料段,編譯期最初將其儲存在符號表中,第一次使用時為其分配記憶體,程式結束釋放。

const區域性變數,在程式執行時存放在棧中,程式結束釋放。

全域性變數儲存在全域性/靜態區域,在編譯期為其分配記憶體,在程式結束時釋放。

區域性變數儲存在中,**塊結束時釋放。

當全域性變數和靜態區域性變數未賦初值時,系統自動置為0

C 記憶體筆記

在c 中,記憶體一般分為5個區,分別為 堆,棧 自由儲存區 全域性靜態儲存區 常量儲存區 1 棧 執行函式時,函式內區域性變數的儲存單元可以在棧上建立,函式執行結束時,記憶體自動被釋放,棧記憶體分配運算內置於處理器的指令集中,效率很高但是分配的記憶體變數有線 2 堆 就是那些由new分配的記憶體塊,...

C 筆記 記憶體分配

在學習c 控制記憶體分配部分主要區別以下幾組函式 malloc free operator new delete new operator delete和placement new delete 二者都可以從堆中申請和分配動態記憶體,並且二者都必須成對匹配使用,才可以正確完成記憶體的的申請和釋放功能...

C學習筆記 記憶體管理

乙個c語言變數的作用域可以是 塊 作用域,函式作用域或者檔案作用域 塊是 之間的一段 同乙個 塊不可以有重名變數 auto自動變數 一般情況下 塊內部定義的變數都是自動變數 也可以顯示的使用aotu關鍵字 auto int i register暫存器變數 通常變數在記憶體當中,如果能把變數放到cpu...