【发布时间】:2012-07-16 00:16:38
【问题描述】:
请告诉我为什么下面的代码甚至在strict C-99 compiler 上运行:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n];
a[1]=10;
a[2]=5;
printf("%d %d",a[1],a[2]);
}
变量声明必须出现在 C 中的任何其他语句之前,对吧?如果我们想要一个动态分配的数组,我们必须使用像malloc() 这样的内存分配函数,但它是如何获取和输入整数并分配那个大小的数组呢?
【问题讨论】:
-
variable-length arrays 和混合声明/代码都在 C99 中添加。
标签: c arrays memory-management dynamic-memory-allocation