Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
int num = atoi(argv[1]); unsigned long times[num];
我有这段代码,我认为它不会编译,因为我试图使用命令行参数中的值分配数组,编译器在编译时不知道该值。但我编译了这段代码,它工作了。有人可以解释这里发生了什么吗?我误解了静态分配的基本概念吗?
C99 允许使用 var 分配数组。这称为可变长度数组,即VLA
我手上没有C99,C99的部分是6.7.5.2,以下链接来自网络。
vla - 维基百科
c99 - 维基百科
请注意,c++ 不支持 vla,更多信息请点击此处