关于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常量
根据位置,有:类变量、函数形参
特殊变量:字面量