修复数组未正确分配的问题

时间:2019-07-06 05:35:08

标签: c++

我正在尝试为数组的特定部分分配新值,但是似乎没有将新值插入数组。

char matrix[20][8] = {/*160 * '#'*/};

void Draw() {
    system("CLS");
    cout << "Welcome to Primitive Pong v1.0!" << endl;
    for (int i = 0; i < 8; i++) {
        cout << endl;
        for (int j = 0; j < 20; j++) {
            cout << matrix[i][j] << " ";
        }
    }
}

while (gameOver == false) {
    matrix[10][4] = 'O';
    Draw();
    this_thread::sleep_for(chrono::milliseconds(1000));
}

我希望它输出一个160“#”的网格,在中间附近有一个“ O”,但是它只打印160“#”。我正在尝试打台球。我尝试使用'matrix [10] [4] = {'O'} ;,但这没什么不同。

1 个答案:

答案 0 :(得分:4)

问题是您声明了matrix[20][8],但随后却将其当作[8][20]的维度来访问。

总数是相同的,但是访问无法正常进行,不幸的是,C ++不会检查这种错误。将代码更改为

        cout << matrix[j][i] << " ";

应该使您的工作正常。