gpt4 book ai didi

c++ - 代码 :Blocks Mingw Compiler Error: Variable-Sized Object May Not Be Initialized

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:41:41 24 4
gpt4 key购买 nike

我正在使用 C++ 创建一个简单的终端奇幻游戏。我似乎遇到了错误“错误:可变大小的对象‘items’可能未初始化”。这是代码:

string useItem(int item)
{
string items[item] = {"HP Potion","Attack Potion","Defense Potion","Revive","Paralize Cure"};
}

我希望能够使用这个函数来访问和返回一个项目。我该如何解决这个错误。我正在使用 Code::Blocks 和 mingw 编译器。

最佳答案

这里有几个问题,一个可变长度数组是 C99 的一个特性,不是 ISO C++ 的一部分,但是一些编译器支持这个特性作为扩展 including gcc .

其次,C99 说可变长度数组不能有初始值设定项,来自 draft C99 standard 6.7.8 初始化部分:

The type of the entity to be initialized shall be an array of unknown size or an object type that is not a variable length array type.

替代方法是使用:

string items[] = { ... } ;

和未知大小的数组的大小将由初始化程序中的元素数量决定。

或者,具有可变大小数组的惯用 C++ 方法是使用 std::vector .

关于c++ - 代码 :Blocks Mingw Compiler Error: Variable-Sized Object May Not Be Initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339014/

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