C ++错误:初始化程序值太多

时间:2017-04-18 13:55:38

标签: c++ arrays visual-studio multidimensional-array

我的数组有一个奇怪的错误。我已经宣布他们是这样的:

void Interface::setup(){
    char pitchPlayers[9][26] = {
        { 201, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 187 },   //1
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //2
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', 001, '1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '1', 001, ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //3
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //4
        { 186, ' ', 001, ' ', ' ', ' ', ' ', 001, '2', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '2', 001, ' ', ' ', ' ', ' ', 001, ' ', 186 },   //5
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //6
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', 001, '3', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '3', 001, ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //7
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },    //8
        { 200, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 188 },   //9
    };

    char dice[9][9] = {
        { 201, 205, 205, 205, 205, 205, 205, 205, 187 },    //1
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },    //2
        { 186, ' ', 254, ' ', ' ', ' ', ' ', ' ', 186 },    //3
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },    //4
        { 186, ' ', ' ', ' ', 254, ' ', ' ', ' ', 186 },    //5
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },    //6
        { 186, ' ', ' ', ' ', ' ', ' ', 254, ' ', 186 },    //7
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },    //8
        { 200, 205, 205, 205, 205, 205, 205, 205, 188 },    //9
    };
}

当我想更改数组的内容时,我在数组的第二行有太多的初始化值错误:

if (numberOfPlayers == 3) {
    pitchPlayers[9][26] = {
        { 201, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 187 },   //1
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //2 - this line
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', 001, '1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '1', 001, ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //3
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //4
        { 186, ' ', 001, ' ', ' ', ' ', ' ', 001, '2', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '2', 001, ' ', ' ', ' ', ' ', 001, ' ', 186 },   //5
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //6
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', 001, '3', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '3', 001, ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //7
        { 186, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 186 },   //8
        { 200, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 188 },   //9
    };

    for (int x = 0; x < 9; x++) {
        for (int y = 0; y < 26; y++) {
            cout << pitchPlayers[x][y];// cout << "X";
        }
        cout << endl;
    }
    cout << endl;
}

我已经在我的头文件中正确地声明了它们。我找不到问题所在。我对C ++很新,所以它可能是某个新手的错误。

1 个答案:

答案 0 :(得分:0)

除了改变评论中所写的pitchPlayers的范围外, 关于在声明后更改整个数组: 您可以声明另一个名为pitchPlayersFor3的另一个初始化数组。 最好声明staticconst。 然后,您可以使用memmovepitchPlayersFor3复制到pitchPlayers