极客班GeekBand - C++第一次课程辅导 - 李建忠
栈(Stack) VS. 堆(heap)
- 栈
- 由系统自动管理,以执行函数为单位
- 空间大小编译时确定(参数+局部变量)
- 函数执行时,系统自动分配一个stack
- 函数执行结束时,系统立即自动回收stack
- 堆
- 在c++中由程序员手动控制
- 手动分配new和malloc
- 手动释放delete和free
- 具有全局性,总体无大小限制
- 容易造成内存泄露
堆对象的空间分析
栈对象的空间分析
变量模型与使用
- 三种变量模型
- 对象
- 指针
- 引用
MyClass c; //对象 一定在栈上
MyClass* pc; //指针 要问自己是栈指针,还是堆指针
MyClass& c2 = c; //引用 要问自己是栈引用,还是堆引用
c =