C++这是怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/09/25 22:26:07
String::set(const char *s)
{
size=strlen(s);
str=new char[size+1];
strcpy(str,s);
}
为什么申请新的内存时长度要+1?为了停止符吗?

字符串以\0结尾
strlen(s)返回不含结束符的串长度,
字符串的实际长度为strlen(s)+1

应该是将一串字符给String类的字符串赋值,最后要一个结束符"\0"的位置,所以要长度加一