1. C++内存空间
代码段和数据段之间有明确的分隔.
但数据段和堆栈段之间没有,而且栈是向下增长,堆是向上增长的.
摘自《程序员的自我修养》俞甲子等著
2. 基本介绍
- 代码段(Code Segment/Text Segment)
存放执行代码.
这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读.
- 数据段(Data Segment)
存放全局变量和静态变量.
- 堆区(Heap)
需要程序员手动申请和释放. 比如new和delete.
- 栈区(Stack)
存放函数参数和局部变量.
系统来负责申请和释放.
3. 结合C++类进行理解
- 类的函数实现存放在代码区.
- 建立对象
- 建立在栈上
A a;
- 建立在堆上
A* a=new A();
- 建立在栈上
References:
http://blog.sina.com.cn/s/blog_821c73630100x40d.html
http://www.cnblogs.com/bluestorm/archive/2012/08/29/2662109.html