我正在尝试为数组的特定部分分配新值,但是似乎没有将新值插入数组。
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'} ;,但这没什么不同。
答案 0 :(得分:4)
问题是您声明了matrix[20][8]
,但随后却将其当作[8][20]
的维度来访问。
总数是相同的,但是访问无法正常进行,不幸的是,C ++不会检查这种错误。将代码更改为
cout << matrix[j][i] << " ";
应该使您的工作正常。