分配内存
如果程序里用不到动态分配内存,那就用不着new。
比如数组 int a[100];其长度必须是常量,是固定的;
若用new的话,可以实现动态数组也就是数组长度可以用变量来表示的,如:
int num = 100;
int *b=new int[num];//b就可以当成一维数组来用
用过后,要释放new时分配的内存
delete[] b;
new 是申请动态存储空间
⑴new可用来生成动态无名变量,
如 int *p=new int;
int *p=new int [10]; //动态数组的大小可以是变量或常量;而一般直接声明数组时,数组大小必须是常量
又如:
int *p1;
double *p2;
p1=new int(12);
p2=new double [100];
l 分别表示动态分配了用于存放整型数据的内存空间,将初值12写入该内存空间,并将首地址值返回指针p1;
l 动态分配了具有100个双精度实型数组元素的数组,同时将各存储区的首地址指针返回给指针变量p2;
对于生成二维及更高维的数组,应使用多维指针。
以二维指针为例
int **p=new int* [row]; //row是二维数组的行,p是指向一个指针数组的指针
for(int i=0; i
删除这个二维数组
for(int i = 0; i < row;i++)
delete []p[i]; //先删除二维数组的列
delete []p;
⑵使用完动态无名变量后应该及时释放,要用到 delete 运算符
delete p; //释放单个变量
delete [ ] p;//释放数组变量(不论数组是几维)
相比于一般的变量声明,使用new和delete 运算符可方便的使用变量。
申请空间用的。
比如你要申请一片空间放一串数字,但是具体有多少数字是让用户输入,就可以使用new去申请。如:
cin>>n;
int *b=new int[n];
这样以后你就可以使用b[0],b[1]```b[n-1]这个数组了。
new是创建对象。实例化对象。类名 对象实例名=new 对象();创建了一个名字为对象实例名的对象
NEW 的作用是分配内存空间,一般是为数组分配!