码迷,mamicode.com
首页 > 其他好文 > 详细

为什么str=new char[strlen(s)+1]; 中要+1

时间:2020-02-26 18:40:49      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:拷贝构造   pre   删除   int   nbsp   构造函数   构造   一个   strlen   

因为strlen是计算字符串有多少字符的,不包括结束符”\0“,所以加一。如"abc",占四个字节,strlen的值是3

//释放实例自身已有内存
    delete[] m_pData;
    m_pData=NULL;
//在删除自身内存以后在重新new一个长度为len+1的字符数组,类似拷贝构造函数 int len=strlen(str.m_pData); m_pData=new char[len+1]; strcpy(m_pData,str.m_pData);

 

为什么str=new char[strlen(s)+1]; 中要+1

标签:拷贝构造   pre   删除   int   nbsp   构造函数   构造   一个   strlen   

原文地址:https://www.cnblogs.com/clemente/p/12368138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!