1. 程式人生 > >程式的記憶體分配即一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分

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

一個由C/C++編譯到程式佔用的記憶體分為以下幾個部分: 1、棧區(stack)——由編譯器自動分配釋放,在不需要的時候自動清除。用於存放函式的引數、區域性變數等。操作方式類似資料結構中的棧(後進先出)。 2、堆區(heap)——一般由程式設計師分配釋放,若程式設計師分配後不釋放,程式結束後可能由OS回收。不同於資料結構中的堆,分配方式有些類似連結串列。 3、全域性區(靜態區)——全域性變數和靜態變數儲存在這裡。程式結束後由系統釋放。在以前到C語言中,全域性變數又細分為初始化的(DATA段)和未初始化到(BSS段),在C++裡已經沒有這個區分了,它們共同佔用同一塊記憶體區。 4、常量儲存區——
常量字串就存放在這裡。一般不允許修改。程式結束後由系統釋放。 5、程式碼區——存放函式體的二進位制程式碼。