<分区>
我知道在 VS 中所有变量都必须在 block 的顶部声明,但是如果我想要一个 VLA,即。如果我想做这样的事情:
int result = runalgorithm();
int vla[result];
上面的代码是无效的,因为必须在顶部声明vla
。除了创建任意大的数组之外,有什么好的解决方案?
<分区>
我知道在 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/