深入理解C++內存管理機制


關於C++的內存處理,可分為三大塊,分別是:

(一)內存管理機制  

(二)內存泄露處理

(三)內存回收機制

這篇文章將就(一)內存管理機制 進行深入探討,如有錯誤歡迎大家指正。

C++的內存管理也可細分為

1. 程序內存布局

2. 內存的分配方式

3. 常見內存錯誤及對策

----------------------------------------------------------------------------

一. 程序內存布局

查了相關資料,明白了一點: 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常量

根據位置,有:類變量、函數形參

特殊變量:字面量

 

函數:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM