我下面有这段代码,它创建了一个可变大小的数组,该数组可以在我的mac上编译并正常运行。
#include <stdio.h>
#include <stdlib.h>
int main(){
int w = 100;
int ar[w];
ar[2] = 42;
printf("%d\n",ar[2]);
}
我以为C中不允许使用可变大小的数组。这到底是怎么回事?如何管理内存?是否在运行时动态分配内存?谢谢
这里发生的是可变长度数组是一个相对较新的功能,仅在1999年才出现在C标准中。C标准在C世界中的接受度不如JavaScript和Python;我记得2007年左右的激动,当时我的工作流程终于能够包含VLA。