內存管理——堆棧等內存的分佈

一個由C/C++編譯的程序的內存分佈分爲以下幾個部分:

1、  棧(stack):也是我們所說的堆棧,是由編譯器自動分配釋放,用來存放函數參數值,函數的返回地址,非靜態局部變量的值等。其操作方式類似於數據結構中的棧(後進先出LIFO)。

2、  堆(Heep):一般由程序員分配釋放,若程序員不釋放,程序結束可能由OS回收。

3、  全局區(靜態區):全局變量和靜態變量存儲在這一塊,初始化的全局變量河靜態變量放在一塊區域,未初始化的全局變量靜態變量放在相鄰的另一塊區域(BSS)。程序結束後由系統釋放。

4、  文字常量區:常量字符串放在這個區域。

5、  程序代碼區:存放函數體的二進制代碼。

 

0

發佈了21 篇原創文章 · 獲贊 13 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章