有的时候需要开辟一个数组,且长度不是常量(随变量n而变化),如果直接定义n长度数组( int a[n] )在C/C++中是不允许的,而如果一次性申请足够长的长度( int a[MAX_N] )又太浪费空间,对于这种情况,有两种解决办法。
一是使用STL中的vector容器:
vector<int> vec(n, 0),定义一个由n个0组成的数组;
或者先定义一个空vector,然后遇到元素再一个一个push_back进去。
二是使用new关键字进行动态分配:
int* p = new int[n] {0},定义一个n长度的数组,并全部初始化为0,返回数组指针p。
用 new 动态分配完,记得用 delete[] p 语句将内存释放掉。