以下代码片段是否安全?它调用了std::string的第四个构造函数,该构造函数接受指向以null结尾的字符串的指针。问题是,我不确定下面的
word
是否以null结尾。它是吗?std::array<char, 4> word{'a', 'b', 'c', 'd'};
int main()
{
std::string p = word.data();
return 0;
}
std::string p(word.begin(), word.end());
- Evgstd::array<char, 50>
,使用begin
和end
迭代器将其转换为字符串后,其中有46个空终止符。哈哈... - user11910061std::string p(word.begin(), word.begin()+desired_length)
或者简单地使用std::string p(word.data, desired_length)
。 - Remy Lebeau