对于不想使用固定长度的数组,一般会考虑动态申请;
而在C中是相当麻烦的操作,在C++中就变得特别简单;
(一)申请动态数组
int n;
cin>>n;
int *arr = new int[n];
如上就是为arr数组申请了大小为n的空间 ,
但是如果写为
int n ;
cin>>n;
int a[n] ;
这样的写法是错的;
[]是对长度的定义,()是对大小的定义; 如上操作就是对数组大小的定义,
(二)申请单个对象:
int *p ;
p = new int ;
或者还喜欢直接在申请的堆内存中包含固定的值;
int *p = new int(100);
(三)注意:
不管申请的是什么类型,在堆上申请的空间在使用完后一定要进行释放,不然会造成内存泄露;
delete []arr;
一般释放的操作为:delete+指针名;
当然将它指向一个空指针也是可以的 ;
arr = NULL;