深入理解C++内存管理机制
2015-04-29 09:42
134 查看
关于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常量
根据位置,有:类变量、函数形参
特殊变量:字面量
函数:
(一)内存管理机制
(二)内存泄露处理
(三)内存回收机制
这篇文章将就(一)内存管理机制 进行深入探讨,如有错误欢迎大家指正。
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常量
根据位置,有:类变量、函数形参
特殊变量:字面量
函数:
相关文章推荐
- C++多态的实现机制深入理解
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 【深入理解C++】从初始化列表和构造函数谈C++的初始化机制
- 深入理解C++面向对象机制(一)多继承
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 深入理解C++面向对象机制(二)虚继承
- [转]全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 深入理解C++面向对象机制(三)构造与析构
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 深入理解Linux内存管理机制(一)
- 【深入理解C++】从初始化列表和构造函数谈C++的初始化机制
- 【深入理解C++】从初始化列表和构造函数谈C++的初始化机制
- 深入理解Linux内存管理机制(一)
- 深入理解 Java 虚拟机的内存管理机制与异常处理
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节
- 深入理解C++中的异常处理机制
- 深入理解Linux内存管理机制(一)
- 深入理解C++中的异常处理机制
- 全面理解Unity加载和内存管理机制之二:进一步深入和细节