我知道在 VS 中所有变量都必须在块的顶部声明,但是如果我想要一个 VLA,即。如果我想做这样的事情:
int result = runalgorithm();
int vla[result];
上面的代码无效,因为vla
必须在顶部声明。除了创建任意大的数组之外,还有什么好的解决方案呢?
你不能。VLA支持在C99
以及后来的标准。 (在 C99 中支持是强制的;在 C11 中支持是可选的。)C89
没有 VLA 概念或支持。
您可以选择动态内存分配。看一下malloc()和家人供大家参考。
请记住,如果您想使用动态内存(分配),您必须free()使用完分配的内存后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)