程式占用記憶體分布

2021-07-10 11:40:57 字數 367 閱讀 6023

乙個由c/c++編譯的程式占用的記憶體分為以下幾個部分

1、棧區(stack)— 由

編譯器自動分配釋放 ,存放函式的引數名,

區域性變數

的名等。其操作方式類似於資料結構中的棧。

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

鍊錶。3、靜態區(static)—

全域性變數

和區域性靜態變數

的儲存是放在一塊的。程式結束後由系統釋放。

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

5、程式**區— 存放

函式體的 二進位制**

程式占用記憶體分析

堆與棧有什麼區別?一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由o...

程式記憶體分布

乙個完整的程式,在記憶體分布中的分布情況如下 1 區 2 全域性資料區 3 堆區 4 棧區 一般程式的由new產生的動態資料存放到堆區,堆用於儲存哪些生存期與函式無關的資料,函式內部的自動變數存放在棧區,區域性變數和函式引數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部...

C C 程式占用記憶體分析

首先感謝下原作者,寫的真的非常明白,非常詳細 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os ...