【问题标题】:2D array of pointers c++ with null pointers带有空指针的 2D 指针数组 c++
【发布时间】:2019-12-17 03:06:39
【问题描述】:

如何在 c++ 中声明一个二维指针数组并通过空指针对其进行初始化?

我尝试过这样做

int *arr[20][30]= nullptr;

【问题讨论】:

    标签: c++ arrays pointers initialization


    【解决方案1】:

    您可以aggregate initialize 初始化列表为空的数组,

    int *arr[20][30] {}; 
    // or 
    int *arr[20][30] = {};
    

    (强调我的)

    如果初始化子句的数量小于成员and bases (since C++17)或初始化列表完全为空,则剩余成员and bases (since C++17)由空列表初始化by their default member initializers, if provided in the class definition, and otherwise (since C++14),按照通常的list-initialization规则(使用默认构造函数对非类类型和非聚合类执行值初始化,并为聚合执行聚合初始化)。

    那么arr 的所有元素(即子数组int* [30])也将是aggregate-initialized,并且初始化列表为空,那么int* 类型的子数组的所有元素将是value-initialized ,

    否则,对象为zero-initialized

    最后,int*(内置类型)类型的元素都被零初始化为空指针。

    如果T 是标量类型,则对象的初始值是整数常量零explicitly convertedT

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 2014-05-22
      相关资源
      最近更新 更多