为char分配空间

时间:2012-11-16 15:04:59

标签: c++

字符串构造通过执行

获得数据空间
new char[strlen(cp)+1];

由于字符串中只有strlen(cp)个字符,所以?

的额外字节是多少?

2 个答案:

答案 0 :(得分:22)

表示字符串结尾的special '\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'

答案 1 :(得分:2)

在基于C的字符串中,字符串'\0'末尾始终有一个特殊字符,它还需要一个额外的字节。这就是为什么我们需要一个额外的字符,我们需要strlen(str)+1数组来存储字符串。