gpt4 book ai didi

c++ - 为什么这个字符串实现分配的字符比字符串中的字符多一个?

转载 作者:行者123 更新时间:2023-12-01 14:48:25 24 4
gpt4 key购买 nike

String::String(const String& old_str)    
{
size = old_str.size;
s = new char[size+1];

我们为什么要使用 size+1这里分配内存,而不是 size ?

最佳答案

在 C 中,字符串都以空字节结尾,表示为 \0一个字符串里面。 size属性返回不考虑空字节的大小,因此您必须分配 size+1字节,因此终止的空字节不会溢出。阅读更多关于以空字符结尾的字符串 here .

关于c++ - 为什么这个字符串实现分配的字符比字符串中的字符多一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60902707/

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