C++,なぜstr=new char[strlen(s)+1];中には1を足す

925 ワード

strlenは文字列が何文字あるかを計算するので、終了文字は含まれませんので、1を追加します.「abc」のように4バイトを占め、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);