为char分配空间

Joh*_*ang 13 c++

字符串构造通过执行获取数据的空间

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'.

  • @AJMansfield:`NULL`是(一个扩展为的宏)一个null*指针*常量.不要用它来引用空字符; 那是''\ 0'`. (2认同)