【问题标题】:Array not initialized but includes curly brackets数组未初始化但包含大括号
【发布时间】:2021-04-17 13:33:17
【问题描述】:
#include <iostream>


int main() {
    int arr[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};
    int* ptr[4] = arr;
}

为什么上面的代码会产生array must be initialized with a brace-enclosed initializer 错误?我已经看到其他有关此问题的帖子,但解决方案是添加大括号,我已经有了。

【问题讨论】:

    标签: c++ arrays pointers


    【解决方案1】:
    int* ptr[4] = arr;
    

    这是一个由四个指向int 的指针组成的数组。可以理解,您的编译器是混乱的,因为它没有使用大括号括起来的初始化程序进行初始化。

    你明显的意图是这是一个指向四个整数数组的指针。那是

    int (*ptr)[4] = arr;
    

    改为。

    【讨论】:

      猜你喜欢
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2021-07-18
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多