C ++错误:多维数组的初始化程序太多

Neraxa

我刚刚开始练习多维数组,并认为我可以使用字符通过它来创建地图。但是我收到“太多的初始化程序”错误,似乎无法弄清楚原因。

char gameMap[5][5] = {

    {'.'},{'.'},{'.'},{'.'},{'.'},
    {'.'},{'.'},{'.'},{'.'},{'.'},
    {'.'},{'.'},{'.'},{'.'},{'.'},
    {'.'},{'.'},{'.'},{'.'},{'.'},
    {'.'},{'.'},{'.'},{'.'},{'.'}
    };
贾伯沃基

您忘记了一些括号,您需要这样做:

  char gameMap[5][5] = {
    { {'.'},{'.'},{'.'},{'.'},{'.'} },
    { {'.'},{'.'},{'.'},{'.'},{'.'} },
    { {'.'},{'.'},{'.'},{'.'},{'.'} },
    { {'.'},{'.'},{'.'},{'.'},{'.'} },
    { {'.'},{'.'},{'.'},{'.'},{'.'} },
  };

您的代码用于初始化25个元素的一维数组。

但是实际上您应该这样写:

  char gameMap[5][5] = {    
    { '.','.','.','.','.'},
    { '.','.','.','.','.'},
    { '.','.','.','.','.'},
    { '.','.','.','.','.'},
    { '.','.','.','.','.'},
  };

但是最好的解决方案是通过编程初始化:

for (int x < 0; x < 5; x++)
  for (int y < 0; y < 5; y++)
    gameMap[x][y] = '.';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章