Linux C 內存管理

32位操作系統內存最大空間爲 2^32 = 2^10*2^10*2^10*4 = 4GB;

64位操作系統的內存分佈

 


內存棧裏存放程序運行的狀態;

64位操作系統

int 佔4字節

指針 佔8個字節

在聲明變量時,gcc 編譯器,會把類型相同的變量放在連續的地址空間;

函數也在棧中佔有地址;



自由可分配內存:





靜態變量

全局變量

常量

都存儲在數據段;



代碼段,代碼段保存源代碼的地址,


地址的運算:

指針偏移運算是運算速度最快的

指針變量,可以去替換指針常量,

數組是一種指針常量,可以用一個指針變量去表示;


堆和棧的內存地址是可以修改的,

但是代碼段的地址是不可以修改的。




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