字符串构造通过执行获取数据的空间
new char[strlen(cp)+1];
Run Code Online (Sandbox Code Playgroud)
由于strlen(cp)字符串中只有字符,所以多余的字节是什么?
Mar*_*oun 22
对于表示字符串结尾的特殊'\0'字符.
(请记住,C风格的字符串是以null结尾的数组).
其他有用的说明:
strlen 不计算'\0'(这就是你需要这个额外字节的原因).strcpy 不复制'\0'.char str[7] = "String";- 单独添加'\0'.char str[] = {'S','t','r','i','n','g'}- 不添加'\0'.char str[7] = {'S','t','r','i','n','g'}- 会加'\0'.