關於C++的內存處理,可分爲三大塊,分別是:linux
(一)內存管理機制 windows
(二)內存泄露處理函數
(三)內存回收機制佈局
這篇文章將就(一)內存管理機制 進行深刻探討,若有錯誤歡迎你們指正。spa
C++的內存管理也可細分爲blog
1. 程序內存佈局內存
2. 內存的分配方式作用域
3. 常見內存錯誤及對策it
----------------------------------------------------------------------------內存管理
一. 程序內存佈局
查了相關資料,明白了一點: memory layout of C++/C program is mostly dependent on the Operating System
So it's an opening question !
即使如此,當清楚C++程序的內存佈局後,咱們對變量的生存期、內存的管理,將會有更深入的認識。
下面先歸納介紹C++程序內存佈局,再分別以windows和linux爲示例。
1. C++程序內存佈局
對於分段式內存而言,C++程序所涉及的內存區有:代碼段、數據段、堆棧。(見圖)
下面來依次分析C++程序中各個元素所對應的內存位置吧~
程序代碼:存儲在代碼段,只讀。
變量:
根據做用域,可分爲:全局變量、局部變量
根據關鍵字,有:static靜態變量、const常量
根據位置,有:類變量、函數形參
特殊變量:字面量