C 无法将大小扫描到数组中
这些是我得到的错误。C 无法将大小扫描到数组中,c,C,这些是我得到的错误。 错误C2057:应为常量表达式 错误C2466:无法分配常量大小为0的数组 错误C2133:“数组”:未知大小 任何帮助都将不胜感激。有些编译器不支持可变长度数组,不幸的是,您的编译器似乎就是其中之一 您可以使用stdlib.h中的malloc()动态分配数组 int n; printf("How many?"); scanf("%d", &n); int array[n]; 可变长度数组需要: C99 C11及更高版本
错误C2057:应为常量表达式
错误C2466:无法分配常量大小为0的数组 错误C2133:“数组”:未知大小
任何帮助都将不胜感激。有些编译器不支持可变长度数组,不幸的是,您的编译器似乎就是其中之一 您可以使用
stdlib.h
中的malloc()
动态分配数组
int n;
printf("How many?");
scanf("%d", &n);
int array[n];
可变长度数组需要:
\u STDC\u NO\u VLA\u
数组大小必须大于0
int n;
printf("How many?");
scanf("%d", &n);
int* array = malloc(sizeof(*array) * n);
请说明您正在使用的编译器。看起来像Microsoft编译器-不支持可变长度数组(VLA)。看起来像Visual Studio不支持VLA。这是否回答了您的问题?C99?否则int*array=malloc(n*sizeof(int));是的,是visual studio。使用malloc是有效的。谢谢各位。
int n;
printf("How many?");
if (scanf("%d", &n) == 1 && n > 0) {
// Success
int array[n];
...
}