1

如果我有:

int **p;

为什么我不能这样做?

p = new *int[4];

但如果我有:

class T {...}
T **c;
c = new *T[4]; 

那是对的吗?

4

3 回答 3

9

必须在*它修改的类型名称之后:

p = new int*[4];
c = new T*[4]; 
于 2013-09-10T15:46:25.147 回答
2

不,这是不正确的。

*必须在type -name之后。

那么它应该是:

p = new int*[4];

c = new T*[4];
于 2013-09-10T15:48:52.987 回答
1

You're trying to multiply the keyword new with the type (int or T)! To say you want a new array of pointers to int:

p = new int*[4];

or an array of pointers to T:

c = new T*[4];

于 2013-09-10T16:08:03.213 回答