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 未初始化(因为它是一个具有自动存储持续时间的变量),因此数组声明调用未定义的行为。