c - 为什么 a[n] 在运行时在 c 中被接受?

标签 c arrays declare

为什么我们可以在 c 中做到这一点?

int n;
scanf("%d",&n);
int a[n];

我认为数组在加载期间位于内存中,但看起来上面的示例在运行时有效。 我误解了什么吗?你们能帮忙吗?

谢谢,

最佳答案

我不是 C 语言专家,但这可能是一个 variable-length array添加者 C99supported by GCC , 例如。 GCC 在堆栈上为此类数组分配内存,以便在您从函数返回时自动释放它。

关于c - 为什么 a[n] 在运行时在 c 中被接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1864840/

相关文章:

C89:使用 rand_r() 的多线程随机值

仅使用 C 中的按位运算符计算 log2(x) 的底数

c - 如何转换日期格式: 2019-08-22 16:16:08] to the format: aammjjhhmmss in C language

c - long foo[2][] 中的不完整类型元素

java - substring() 的 endIndex 减 1 的原因

javascript - 查找数组中的范围

C 正确释放多维数组

function - 在julia 1.0中,什么新语法?错误: { } vector syntax is discontinued

C 定义和 char 指针声明之间的错误

c# - 如何在C#中声明 session 变量?