C 中的可变长度数组
Variable-length array in C
是否可以在初始化数组时声明变量?
例如:
#include <stdio.h>
main()
{
int x;
int arr[x];
scanf("%i", &x);
}
或者类似的东西?
如有任何帮助,我们将不胜感激。
一般可以这样写
int x;
scanf("%i", &x);
int arr[x];
在这种情况下,数组 arr
将是一个可变大小的数组。 x
的值应大于 0。
否则在这种情况下
int x;
int arr[x];
变量 x
未初始化(因为它是一个具有自动存储持续时间的变量),因此数组声明调用未定义的行为。
是否可以在初始化数组时声明变量?
例如:
#include <stdio.h>
main()
{
int x;
int arr[x];
scanf("%i", &x);
}
或者类似的东西?
如有任何帮助,我们将不胜感激。
一般可以这样写
int x;
scanf("%i", &x);
int arr[x];
在这种情况下,数组 arr
将是一个可变大小的数组。 x
的值应大于 0。
否则在这种情况下
int x;
int arr[x];
变量 x
未初始化(因为它是一个具有自动存储持续时间的变量),因此数组声明调用未定义的行为。