c++三种管理内存的方式:
一. 自动存储(栈存储)
函数的形参,函数内部声明的变量及结构体变量自动存储在栈里面
在所属函数被调用时自动产生,在函数结束时自动消亡
如:
二. 静态存储(编译器预分配)
每个程序都分配一段静态内存空间,永久存储,在程序开始时建立,程序运行结束时销毁static extern变量。
1,extern关键字
为全局变量(外部变量),在函数和类外部定义,可以在程序任一位置进行访问
1.1 定义性声明
extern 类型 变量名 =初始化表达式
extern double a=1.11;
1.2 引用性声明
extern 类型 变量名;
三. 动态存储
new 和delete,在*或者堆(heap);
malloc 和free 自由存储空间(free store)
相比于栈,堆的存取是随意的一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表