This question already has answers here:
Closed last year.
Enabling VLAs (variable length arrays) in MS Visual C++?
(3个答案)
我知道在VS中,所有变量都必须声明在块的顶部,但是如果我想要一个VLA,也就是说,如果我想做这样的事情:
上面的代码无效,因为必须在顶部声明
(3个答案)
我知道在VS中,所有变量都必须声明在块的顶部,但是如果我想要一个VLA,也就是说,如果我想做这样的事情:
int result = runalgorithm();
int vla[result];
上面的代码无效,因为必须在顶部声明
vla
。除了创建任意大的数组之外,什么是解决这个问题的好方法? 最佳答案
你不能。C99
和更高版本的标准支持VLA。(支持在C99中是必需的;在C11中是可选的。)C89
没有VLA概念或对它的支持。
您可以选择动态内存分配。看看malloc()
和家庭,供您参考。
记住,如果你想使用动态内存(分配),你必须在使用完分配的内存后free()
它。
关于c - 如何在其他代码之后的Visual Studio C89中声明可变长度数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39455252/
10-10 09:41