Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 数组静态分配_C_Arrays - Fatal编程技术网

C 数组静态分配

C 数组静态分配,c,arrays,C,Arrays,我有这段代码,我假设它不会编译,因为我试图使用命令行参数中的值分配数组,而编译器在编译时不知道该参数。 但我编译了这段代码,它成功了。 有人能解释一下这里发生了什么吗?? 我是否误解了静态分配的基本概念???C99允许分配带有变量的数组。这称为可变长度数组akaVLA 我手上没有C99,该部分是C99中的6.7.5.2,以下链接来自互联网 注意,VLA在C++中不支持,更多的信息c99支持,如图所示。本质上,编译器决定在运行时分配数组的方式,而不是在编译时分配数组。 int num = at

我有这段代码,我假设它不会编译,因为我试图使用命令行参数中的值分配数组,而编译器在编译时不知道该参数。 但我编译了这段代码,它成功了。 有人能解释一下这里发生了什么吗??
我是否误解了静态分配的基本概念???

C99允许分配带有变量的数组。这称为可变长度数组akaVLA

我手上没有C99,该部分是C99中的6.7.5.2,以下链接来自互联网


<>注意,VLA在C++中不支持,更多的信息

c99支持,如图所示。本质上,编译器决定在运行时分配数组的方式,而不是在编译时分配数组。
int num = atoi(argv[1]);
unsigned long times[num];