我有一个很宽的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/