2014-09-04 94 views
1

我想知道動態分配數組

int *pia=new int[10]; 

int *pis=new int[10](); 

之間的差別。換句話說,我想知道什麼是在PIA時,沒有初始化,但已被分配內存空間。

回答

3

第一個指定默認初始化;對於像int這樣的簡單類型,這意味着沒有初始化並且它們具有未指定的值。

第二個指定值初始化;對於簡單類型如int,這意味着它們的初始值爲零。

+0

較新的統一初始化語法'int * pis = new int [10] {};'也適用於這種情況嗎? – Niall 2014-09-04 12:25:21

+2

@Niall:是的,這也給了價值初始化。 – 2014-09-04 12:25:42