【问题标题】:C++ - Too Many Initializers for ArraysC++ - 数组的初始化器太多
【发布时间】:2012-09-02 09:05:18
【问题描述】:

我已经创建了一个这样的数组,但它一直说我有太多的初始化程序。我该如何解决这个错误?

        int people[6][9] = {{0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0}};

【问题讨论】:

    标签: c++ c multidimensional-array initialization


    【解决方案1】:

    这里的问题是你在数组声明部分交换了行/列索引,因此编译器很困惑。

    通常在声明多维数组时,第一个索引是行,第二个是列。

    这个表格应该可以解决它:

       int people[9][6] = {{0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0}};
    

    【讨论】:

    • @David,索引已交换。
    • 啊,你比我快。 +1
    • 哇,谢谢,这很简单,但我没注意到-_-
    【解决方案2】:
    int people[6][9] =
    {
        {0,0,0,0,0,0,0,0,0},
        {0,0,0,0,0,0,0,0,0},
        {0,0,0,0,0,0,0,0,0},
        {0,0,0,0,0,0,0,0,0},
        {0,0,0,0,0,0,0,0,0},
        {0,0,0,0,0,0,0,0,0},
    };
    

    C 中的数组按行后列的顺序排列,因此在您定义的数组的初始化程序中有 6 行 9 个整数,而不是 9 行 6 个整数。

    【讨论】:

      【解决方案3】:

      您在索引中混合了 6 和 9。

      【讨论】:

        猜你喜欢
        • 2021-06-03
        • 2020-05-04
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        • 2018-01-15
        • 2017-09-17
        • 2014-12-25
        • 2011-04-03
        相关资源
        最近更新 更多