C 错误:初始化量太多

C++ Error: Too Many Initializer Values

本文关键字:太多 初始化 错误      更新时间:2023-10-16

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

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 的新手,因此在某个地方可能是新秀错误。

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