8.堆、栈与内存管理
1.stack objects的生命期
栈只要离开作用域就消失了,自动调用析构函数
2.static local objects的生命期
{static complex c2(1,2);}
c2的生命在作用域结束之后仍然存在,直到整个程序结束
3.heap objects的生命期
堆要手动删除
4.new:先分配memory,再调用ctor构造函数

5.delete:先调用dtor析构函数,再释放memory

6.动态分配所得的内存块,in VC
cookie记录整块大小,以便于以后系统回收,下面cookie=0x41,其中4表示4*16=64,1表示获得(对于程序而言),0表示给出去

每一个区块一定是16的倍数,所以要加上pad

不在调试模式下,所以没有灰色,且是16的倍数,所以没有浅绿色
7.动态分配所得的array
比如complex* p = new complex[3]


浙公网安备 33010602011771号