code link

#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/

10-14 20:31
查看更多