看到这个问题有没有办法用非常量变量初始化数组?(C++)
简短的回答是不,你不能直接这样做。但是,您可以使用类似的方法获得相同的效果
int arraySize = 10;
int * myArray = new int[arraySize];
NowmyArray
是指向数组的指针,您可以像访问数组一样访问它myArray[0]
,等等。
您还可以使用一个向量,它允许您拥有一个可变长度的数组。我的示例允许您使用变量初始化器创建一个数组,但myArray
在我的示例中只有 10 个项目长。如果您不确定数组将使用矢量多长时间,您可以将项目推入并弹出它。
还要记住我的例子,因为你已经动态分配了内存,当你完成数组时,你需要通过执行类似的操作来释放该内存
delete[] myArray;
这是一个小示例应用程序来说明这一点
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int arraySize = 10;
int * myArray = new int[arraySize];
myArray[0] = 1;
cout << myArray[0] << endl;
delete[] myArray;
}