我有一个很宽的char变量,我想用一个字符串的大小来初始化。
我尝试跟随,但没有成功。

std::string s = "aaaaaaaaaaaaaaaaaaaaa"; //this could be any length
const int Strl = s.length();
wchar_t wStr[Strl ]; // This throws error message as constant expression expected.


我必须实现什么选择?在这种情况下,malloc是否可以工作?

最佳答案

由于这是C ++,因此请使用new而不是malloc

它不起作用,因为C ++不支持VLA。 (可变长度数组)

数组的大小必须是编译时常量。

 wchar_t* wStr = new wchar_t[Strl];

 //free the memory
 delete[] wStr;

关于c++ - 初始化宽字符数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10546514/

10-16 19:24
查看更多