指针数组的动态初始化

时间:2012-10-16 10:18:01

标签: c++ arrays pointers new-operator double-pointer

class MyClass
{
    int **a;
    int *b[];

    MyClass()
    {
        a = new int*[10];
        b = new int*[10];
    }
};

在上面的代码中,我在构造函数的第二行得到了一个编译错误(b = new int * [10])。它表示错误:分配int**' to int * [0u]'

时出现不兼容的类型

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您无法分配到数组;您可以初始化它或分配给它的成员。您的b成员无论如何都是无效的,因为拥有大小为0的数组是非法的;语法T b[]只能在立即提供聚合初始化程序的情况下使用,允许编译器推断数组的长度。