【问题标题】:Compiler gives "excess element in array initializer" warning in objective C with 2D C-array编译器在具有 2D C 数组的目标 C 中给出“数组初始值设定项中的多余元素”警告
【发布时间】:2014-08-18 04:29:56
【问题描述】:

我只是在学习 Objective C 并编写一个程序来帮助人们学习弹吉他。我想创建一个包含(几乎)吉他琴颈上所有音符的二维数组。由于吉他上有六根弦,一个八度有十二个音符,我创建了一个 6 x 12 阵列。 编辑:解决方案现在位于底部

这里的意图是将数组读取为 (string),(fret number)

int strings[6][12] = {
    { {0, 8},{0, 9},{0, 10},{0, 11} ,{0, 12} ,{0, 1}, {0, 2},{0, 3},{0, 4},{0, 5},{0, 6},{0, 7} },
    { {1, 3},{1, 4},{1, 5},{1, 6},{1, 7},{1, 8,},{1, 9},{1, 10},{1, 11} ,{1, 12},{1, 1},{1, 2} },
    { {2, 12},{2, 1},{2, 2},{2, 3},{2, 4},{2, 5},{2, 6},{2, 7},{2, 8},{2, 9},{2, 10},{2, 11} },
    { {3, 6}, {3, 7} , {3, 8} , {3, 9} ,{3, 10} ,{3, 11} ,{3, 12} ,{3, 1} ,{3, 2} ,{3, 3} ,{3, 4} ,{3, 5} },
    { {4, 1} ,{4, 2} ,{4, 3} ,{4, 4} ,{4, 5} ,{4, 6} ,{4, 7} ,{4, 8} ,{4, 9} , {4, 10} ,{4, 11} ,{4, 12} },
    { {5, 9},{5, 10},{5, 11} , {5, 12} ,{5, 1},{5, 2},{5, 3},{5, 4},{5, 5},{5, 6},{5, 7},{5, 8} }
};

问题是,XCode 会抛出警告:“数组初始值设定项中的多余元素”。我究竟做错了什么?我数了无数次元素,仍然摸不着头脑。

【问题讨论】:

  • 你真正想要的似乎是一个由 6 个数组组成的数组,由 12 个数组组成,由 2 个整数组成。
  • 从@JoachimPileborg 的正确答案中提供更多细节 - 使用 int strings[6][12][2] = ...
  • 通常当我看到 N 维数组时,我会想到“缺少对象”。也许你真正想要的是一个名为 Strings 的 NSObject 子类数组,也许它们有一个名为 Frets 的自定义对象数组,等等。

标签: objective-c arrays multidimensional-array compiler-warnings


【解决方案1】:

从问题转移到实际答案帖子:

感谢你们很酷的人,我找到了问题所在。在活动中 其他人有这个问题,这是我的解决方案。我开始意识到 问题是我在每个数组中分配了两个整数 插槽,有效地使阵列成为 3D 阵列。从第一个数字 在每一对中只是字符串编号,我继续前进并摆脱了 其中。没有更多警告!**

int strings[6][12] =    {8, 9, 10, 11, 12, 1 ,2 ,3, 4, 5, 6, 7, // High e
                        3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, // B
                        12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, //G
                        6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, // D
                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, // A
                        8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7 }; // E

【讨论】:

    猜你喜欢
    • 2016-08-10
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2012-11-13
    • 2014-08-15
    • 2011-12-27
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多