class MyClass
{
int **a;
int *b[];
MyClass()
{
a = new int*[10];
b = new int*[10];
}
};
在上面的代码中,我在构造函数的第二行得到了一个编译错误(b = new int * [10])。它表示错误:分配int**' to
int * [0u]'
为什么会这样?
答案 0 :(得分:2)
您无法分配到数组;您可以初始化它或分配给它的成员。您的b
成员无论如何都是无效的,因为拥有大小为0的数组是非法的;语法T b[]
只能在立即提供聚合初始化程序的情况下使用,允许编译器推断数组的长度。