2014-09-04 205 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