看到这个问题Is there a way to initialize an array with non-constant variables? (C++)
简短的回答是不,你不能直接这样做。然而,你可以得到的东西,如
int arraySize = 10;
int * myArray = new int[arraySize];
现在myArray
同样的效果是一个指针数组,你可以像喜欢myArray[0]
数组等
你也可以使用一个向量访问这将允许你有一个可变长度的数组。我的例子允许你创建一个带有变量initailizer的数组,然而在我的例子中,myArray
只有10个项目。如果您不确定阵列使用矢量的时间有多长,并且您可以推送和放弃项目。
也请记住我的例子,因为你已经dyanmically分配的内存,您将需要释放内存当你在做类似
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;
}
可变长度数组不是在C++支持。它只是一个编译器扩展,如果它在其他平台上编译的话。 – Mahesh 2012-04-06 15:02:26
[有没有办法用非常量变量初始化一个数组? (C++)](http://stackoverflow.com/questions/972705/is-there-a-way-to-initialize-an-array-with-non-constant-variables-c) – 2012-04-06 15:05:22