棧區,堆區,全域性區等概念

2021-04-22 01:27:06 字數 332 閱讀 4437

1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os** 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。

3、全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。 - 程式結束後有系統釋放

4、文字常量區 —常量字串就是放在這裡的。 程式結束後由系統釋放

5、程式**區—存放函式體的二進位制**

堆區和棧區

1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由系統 3 全域性區 靜態區static 全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變...

棧區和堆區

注意,這裡所說的堆區和棧區指的是 虛擬 記憶體區域,跟資料結構中的堆疊不一樣。棧區 stack 由編譯器自動分配釋放,存放區域性變數的值 函式呼叫所需要維護的資訊等。棧區必須滿足這樣一條規則 先入棧的資料後出棧 first in last out,filo 堆區 heap 一般由程式設計師分配釋放,...

堆區和棧區

棧區 由編譯器自動分配並釋放 存放函式的引數值 區域性變數等 棧空間分靜態分配和動態分配 靜態分配是編譯器完成的比如自動變數 auto 的分配,棧的動態分配無需釋放,也就沒有釋放函式 堆區 由程式設計師分配和釋放,如果程式設計師不釋放,程式結束時,可能會由作業系統 比如ios中的alloc都是存放堆...