繁体   English   中英

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

[英]C++ Error: Too Many Initializer Values

我的数组出现奇怪的错误。 我已经这样声明了它们:

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 最好将其声明为staticconst 然后,您可以使用memmovepitchPlayersFor3复制到pitchPlayers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM