如何将可变长度数组声明为全局变量?
在扫描长度之前在函数中声明可变长度数组时,它会编译但不会运行。它给出了段错误。当相同的声明语句移动到扫描语句下方时,它运行正常。
如果我们想要一个对所有函数全局可用的可变长度数组,我们该怎么做呢?这里的问题是数组的长度只能通过一些函数来扫描。
最佳答案
可变长度数组(即使用运行时值确定大小的数组)不能是全局变量,因为您用于确定大小的表达式显然必须在编译时计算。它只能存在于堆栈中。大概你得到的是一个静态数组,其大小取决于你在代码中定义它的位置(因为你正在重新定义它所依赖的东西)。
为什么不能只使用全局指针和 realloc() 根据需要调整大小?
关于c - 在 C 中将可变长度数组声明为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10360394/