2014-12-24 29 views
0

为什么我不能使用这段代码,当我想分配用户输入数组的大小?指定用户输入数组的大小

int n; 
cin>>n; 
int array[n]; 

是否有另一种方法来做到这一点,而不是使用这种结构?

int n; 
cin>>n; 
int *array; 
array = new int[n]; 
+0

以第一种方式声明的数组在编译时需要一个已知的固定大小。对于第二个,你也可以使用矢量 –

+0

尝试使用'std :: vector'而不是自己管理内存。 –

回答

-1

根据O'Reilly的“C++简而言之”(2003),

An array is specified with a constant size in square brackets 

由于您的变量n不是一个常数,它不能被用来指定的大小阵列。

的同款还表示,

For an array-like container whose size can change at runtime, see <vector> in Chapter 13. 

很抱歉,但你不能有这种结构。