2013-10-06 198 views

回答

11
int *a = new int; 

a指向缺省初始化對象(它是未初始化對象情況下即所述值是不確定的按照標準)。

int *a = new int(); 

a指向值初始化對象(它是零初始化對象在情況下即所述值是零按照標準)。

+3

分別對於初始化,零初始化和默認初始化的情況,C++ 11§8.5,p7,C++ 11§8.5,p5和C++ 11§8.5,p6分別介紹了OP有興趣(我非常懷疑它)。 – WhozCraig

+4

請注意,測試可能不會暴露這種差異:與自動存儲不同,動態分配的內存在簡單測試程序中通常會最終爲零,並且在較早的內存被重用時只在較大的程序中包含「垃圾」。 – hvd

5

第一個變種默認初始化動態分配int,這對於內置類型,例如int不執行任何初始化。

的第二變型值初始化它,這對於int意味着零初始化,給它的價值0

相關問題