#include <stdio.h>
int main(void) {
// your code goes here
int a = 2;
int b = 3;
int c;
c = a + b;
int arr[c];
arr[5] = 0;
printf("%d",arr[5]);
return 0;
}
输出为0
如何在运行时获取数组号?是新功能吗?
最佳答案
这是一个可变长度数组。它们是在1999年修订的C标准中引入的。
遗憾的是,对它们的支持来得很慢,以至于2011年的修订版将它们作为可选功能(但它们仍然是标准化的)1。
尽管看起来很酷,但他们有一个重要的警告。如果大小“太大”,它们会导致调用堆栈溢出。因此,使用时需要小心。
一些编译器供应商是有抵抗力的,所以可以选择安抚他们。微软就是一个完整的案例研究。
关于c - 在运行时进行数组初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41824253/