gpt4 book ai didi

c++ - std::array null 是否终止?

转载 作者:行者123 更新时间:2023-12-04 11:49:42 24 4
gpt4 key购买 nike

以下代码片段是否安全?它调用了 std::string 的第四个构造函数,该构造函数接受一个指向空终止字符串的指针。问题是,我不确定 word下面是空终止。是吗?

std::array<char, 4> word{'a', 'b', 'c', 'd'};

int main()
{
std::string p = word.data();
return 0;
}

最佳答案

Is std::array<char, size> null terminated?


它可以包含一个以空字符结尾的字符串。它不一定包含以空字符结尾的字符串。
std::array<char, 4> word{'a', 'b', 'c', 'd'};

此数组不包含空终止字符串。您可以判断,因为没有一个元素是空终止符。
std::string p = word.data();

该程序的行为未定义。

Is the following snippet of code safe?


不。

how to make word null terminated.


这是一个例子:
std::array<char, 5> word{'a', 'b', 'c', 'd'};
或者,如果您想更明确:
std::array<char, 5> word{'a', 'b', 'c', 'd', '\0'};

关于c++ - std::array<char, size> null 是否终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68460156/

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