gpt4 book ai didi

C : How to make the size of an array dynamic?

转载 作者:行者123 更新时间:2023-12-01 23:15:03 25 4
gpt4 key购买 nike

我从书上读到:《C Primer Plus》告诉我在 C99 标准中,可以使用如下语法:

    int b=4;
char a[b];

但是当我将这段代码放入 vs2013 时,它告诉我“表达式必须有一个常量值”。

这本书有错吗?或者有一些我不知道的关于 vs2013 的新功能?

最佳答案

这叫做 Variable Length Arrays ,我猜你的 VS2013 编译器不支持它们。

我会建议您切换到另一个编译器。 GCC 的最新版本或 Clang/LLVM支持 VLA,他们支持 C99甚至大部分 C11 .

实际上,我什至建议将您的开发工作和系统切换到 Linux .然后开发工具通常是free software ,作为整个系统。

否则,使用指针,例如从malloc(3)获得(或调用);但是,您应该针对失败测试分配,然后调用 free。避免 memory leaks (如果可用,请使用类似 valgrind 的工具)。也许您的编译器支持非标准但广泛可用的 alloca(3) .也可以考虑在程序范围内使用garbage collector喜欢Boehm's convervative GC : 然后你将使用 GC_malloc 而不是 malloc 但你不需要调用 GC_free !

关于C : How to make the size of an array dynamic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com