1. 程式人生 > >關於棧空間和堆空間(指標)

關於棧空間和堆空間(指標)

 

一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分:

 1、棧區(stack):又編譯器自動分配釋放,存放函式的引數值,區域性變數的值等,其操作方式類似於資料結構的棧。
 2、堆區(heap):一般是由程式設計師分配釋放,若程式設計師不釋放的話,程式結束時可能由OS回收,值得注意的是他與資料結構的堆是兩回事,分配方式倒是類似於資料結構的連結串列。
 3、全域性區(static):也叫靜態資料記憶體空間,儲存全域性變數和靜態變數,全域性變數和靜態變數的儲存是放一塊的,初始化的全域性變數和靜態變數放一塊區域,沒有初始化的在相鄰的另一塊區域,程式結束後由系統釋放。
 4、文字常量區:常量字串就是放在這裡,程式結束後由系統釋放。
 5、程式程式碼區:存放函式體的二進位制程式碼。