gpt4 book ai didi

c++ - 表达式不计算为常量

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

刚开始学C++,不懂这个错误:

std::string AFunction(const std::string& str) {
size_t s = str.length();

char inProgress[s];


return std::string();
}

我得到错误:

error C2131: expression does not evaluate to a constant

此处:char inProgress[s];

我必须用 str 的长度设置 inProgress 大小做什么?

最佳答案

问题 是在标准 C++ 中,数组的大小必须是编译时间常数。这意味着您的程序中的以下内容不正确:

size_t s = str.length();
char inProgress[s]; //not standard C++ because s is not a constant expression

更好的方法是使用 std::vector,如下所示:

std::string AFunction(const std::string& str) {
size_t s = str.length();

std::vector<char> inProgress(s); //create vector of size `s`


return std::string{};
}

关于c++ - 表达式不计算为常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72239263/

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