c - 如何按照其他代码在 Visual Studio C89 中声明可变长度数组

标签 c arrays c99 c89 variable-length-array

<分区>

我知道在 VS 中所有变量都必须在 block 的顶部声明,但是如果我想要一个 VLA,即。如果我想做这样的事情:

int result = runalgorithm(); 

int vla[result];

上面的代码是无效的,因为必须在顶部声明vla。除了创建任意大的数组之外,有什么好的解决方案?

最佳答案

你不能。 VLA C99 和更高版本的标准支持。 (在 C99 中支持是强制性的;在 C11 中是可选的。)C89 没有 VLA 概念或对它的支持。

您可以选择动态内存分配。看看malloc()和家人供您引用。

记住,如果你想使用动态内存(分配),你必须free()使用完毕后分配的内存。

关于c - 如何按照其他代码在 Visual Studio C89 中声明可变长度数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735463/

相关文章:

javascript - 在 JavaScript (ES6) 中合并数组以形成数组数组

arrays - 获取数组而不是字符串

c - 有什么方法可以在 C 中的 fscanf 中包含原始参数

c - 具有常量表达式的初始化程序在 C99 中可能溢出

c - 为什么会触发 SIGSEGV?

c - LAPACKE矩阵求逆分段故障C

c - 使用指针求数组之和

java - 将 C CRC16 转换为 Java CRC16

c# - 带参数的二维数组

c - main 中的可变参数列表