0
爲什麼我不能使用這段代碼,當我想分配用戶輸入數組的大小?指定用戶輸入數組的大小
int n;
cin>>n;
int array[n];
是否有另一種方法來做到這一點,而不是使用這種結構?
int n;
cin>>n;
int *array;
array = new int[n];
爲什麼我不能使用這段代碼,當我想分配用戶輸入數組的大小?指定用戶輸入數組的大小
int n;
cin>>n;
int array[n];
是否有另一種方法來做到這一點,而不是使用這種結構?
int n;
cin>>n;
int *array;
array = new int[n];
根據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.
很抱歉,但你不能有這種結構。
以第一種方式聲明的數組在編譯時需要一個已知的固定大小。對於第二個,你也可以使用矢量 –
嘗試使用'std :: vector'而不是自己管理內存。 –