1. 程式人生 > >C++,為什麼str=new char[strlen(s)+1];中要加一

C++,為什麼str=new char[strlen(s)+1];中要加一

因為strlen是計算字串有多少字元的,不包括結束符,所以加一。如"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);

CSDN 原文:https://blog.csdn.net/sdyslove/article/details/50462936?utm_source=copy 版