c++动态定义数组长度

2024-11-06 14:12:52
推荐回答(1个)
回答1:

你可以先定义一个全局指针变量(如果要求整型数组的话就是int* a,字符型就是char* a等),指针你可以把它理解成数组int a[],这里数组a就相当于int*a,但这时指针还没有分配内存空间,只要分配了就相当于数组,但比数组的优势在于可以动态定义长度,如果分配了空间之后a中存储的值就是分配的空间的位置 ,比如分配空间后a中值为2000,表明它指向2000这个位置,由于是全局变量,因此函数执行完,a也不会消失,因此一直都有a=2000(除非在函数中被重新分配了空间)
再分配内存区域,用new函数,比如整型指针,就用语句a=new int[n+1],就相当于此时已经定义了数组a[n+1],后面的操作可以就相当于有了a[n+1]该怎么用就怎么用
最后当你把数组使用完毕后,要释放掉内存空间,免得空间浪费,用delete释放掉内存空间,以后在想给a分配空间再用new分配就好了