1. 程式人生 > >c++ 用new動態申請陣列初始化的問題

c++ 用new動態申請陣列初始化的問題

注意括號的使用

注意:C++使用new和delete在堆(自由儲存區)上分配和釋放動態陣列。

動態陣列初始化:

1.元素只能初始化為元素型別的預設值,而不能像陣列變數一樣,用初始化列表為陣列元素提供各不相同的初值。

2.對於內建資料型別元素的陣列,必須使用()來顯示指定程式執行初始化操作,否則程式不執行初始化操作:

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

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

3.類型別元素的陣列,則無論是否使用(),都會自動呼叫其預設建構函式來初始化:

string *psa = new string[10]; // 每個元素呼叫預設建構函式初始化

string *psa = new string10; // 每個元素呼叫預設建構函式初始化