一、动态分配和静态分配
1.静态分配
- 在程序编译或运行过程中,按事先规定的大小分配内存空间 int a[10];
- 必须事先知道所需空间大小
- 分配在栈区或全局区,一般用数组进行分配
2.动态分配
- 在程序运行过程中,根据需要大小自由分配所需空间
- 按需分配
- 分配在堆区,一般用特点关键字进行分配
二、new和delete
new申请堆区空间,delete释放空间,两者成对出现
1. 操作基本类型空间
基本格式:
int *p1=NULL;
p1=new int;
*p1=100;
delete p;
升级格式:new申请空间的同时,初始化空间内容
int *p2=NULL;
p2=new int(100);
delete p2;
2.操作数组空间
升级格式: 初始化用{}、delete要[]
int *arr=NULL;
arr=new int[5]{10,20,30,40,50};
delete [] arr;