gpt4 book ai didi

c++ - 应为常量表达式,无法分配常量大小为 0 的数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:19 24 4
gpt4 key购买 nike

我正在尝试创建一个对象数组,如果我手动输入数组大小,它就可以正常工作,但是每当它尝试从函数 args 获取信息时,它都会给出错误“预期的常量表达式”和“无法分配常量大小为 0 的数组。

我四处搜索并找到了多个解决方案,但没有一个适合我。代码目前看起来像这样:

Array::Array(int in, int min, int max) 
{
size = in;
Heltal *htal[size];
}

size整数和htal对象在头文件中定义。

似乎导致问题的行是最后一行。这是什么原因造成的,我该如何解决?

最佳答案

C++ 不支持 VLA(可变长度数组)。即使它们是,a 也是一个 vector ,所以 Heltal *htal[a]; 没有意义。

您可以使用 std::vector 而不是数组(有效大小)来解决此问题:

std::vector<Heltal*> htal(a.size() /*or whatever size you want*/);

关于c++ - 应为常量表达式,无法分配常量大小为 0 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14260507/

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