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'而不是自己管理内存。 –