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