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

徘徊边缘 提交于 2020-02-26 18:42:59

因为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);

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!