int n;
printf("How many?");
scanf("%d", &n);
int array[n];
这些是我得到的错误..
错误C2057:期望的常量表达式
错误C2466:无法分配大小恒定为0的数组
错误C2133:“数组”:大小未知
任何帮助将不胜感激。
答案 0 :(得分:0)
某些编译器不支持可变长度数组,很遗憾,您的编译器似乎是其中之一。
您可以使用malloc()
中的stdlib.h
动态分配数组。
int n;
printf("How many?");
scanf("%d", &n);
int* array = malloc(sizeof(*array) * n);
答案 1 :(得分:0)
可变长度数组需要:
C99
C11及更高版本,未定义_STDC_NO_VLA__
。
数组大小必须大于0。
int n;
printf("How many?");
if (scanf("%d", &n) == 1 && n > 0) {
// Success
int array[n];
...
}