数组静态分配

时间:2012-09-05 05:36:49

标签: c arrays

int num = atoi(argv[1]);
unsigned long times[num];  

我有这个代码,我认为它不会编译,因为我试图使用命令行参数中的值来分配数组,编译器在编译时不知道。 但我编译了这段代码并且它有效。 谁能解释一下这里发生了什么? 我是否误解了静态分配的基本概念?

1 个答案:

答案 0 :(得分:5)

C99允许使用var分配数组。这称为可变长度数组又名 VLA

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

vla - wikipedia

c99 - wikipedia

请注意c ++不支持vla,更多信息here