C++ new動態數組初始化


 
         
strlen函數是不包括‘\0’的長度的,sizeof計算的結果才包括'\0'的長度:
C++ new動態數組初始化
void
testnew( const char* str ) { if (!str){ m_pdata = 0; } else{
     int len = strlen(str); m_pdata
= new char[len + 1]; strcpy(m_pdata,str);
     m_pdata[len] = '\0'; } }

動態數組初始化:


對於內置數據類型元素的數組,必須使用()來顯示指定程序執行初始化操作,否則程序不執行初始化操作:

int *pia = new int[10]; // 每個元素都沒有初始化

int *pia2 = new int[10] ();  // 每個元素初始化為0


類類型元素的數組,則無論是否使用(),都會自動調用其默認構造函數來初始化:

string *psa = new string[10];  // 每個元素調用默認構造函數初始化

string *psa = new string[10]();  // 每個元素調用默認構造函數初始化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM