2014-12-24 26 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. 

很抱歉,但你不能有這種結構。