false 表达式在 visual studio 2022 c++ 中必须具有常量值

false expression must have a constant value in visual studio 2022 c++

你好,我在编译器中编写代码,但我的编译器在其中一个程序行中出现此错误:“错误表达式必须具有常量值” 我使用了其他编译​​器,但他们没有这样说,我可以编写我的程序,但在 visual studio 2022 中它给了我错误 程序示例是:

 stack<char> stack;
 queue<char> queue;
string str;
cin >> str;
char ch[str.length()];

错误在

char ch[str.length()];

我不知道如何解决这个问题 如果你们能帮助我,我会很高兴

可变长度数组不是 C++ 标准,请参阅 here。因为 str.length() 在运行时是已知的,但是数组的大小必须在编译时知道,这会导致错误。

您应该改用 std::vector

替换:

char ch[str.length()];

与:

std::vector<char> ch(str.length());