【问题标题】:Dynamic initialization of array of pointers指针数组的动态初始化
【发布时间】:2012-10-16 10:18:00
【问题描述】:
class MyClass
{
    int **a;
    int *b[];

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

在上面的代码中,我在构造函数中的第二行出现编译错误 (b = new int*[10])。它说错误:int**' toint*[0u]' 的分配中的类型不兼容

为什么会这样?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      相关资源
      最近更新 更多