我有一个多维char数组,我写入,然后使用嵌套for循环打印出来,但由于某种原因它输出垃圾,我做错了什么?
#include <iostream>
#include <string>
using namespace std;
class CheckerBoard {
public:
void initBoard() {
for(int y = 0; y < 0; y++) {
for(int x = 0; x < 0; x++) {
if((x % 2) == 0) {
_board[y][x] = ' ';
} else {
_board[y][x] = '*';
}
}
}
}
void printBoard() {
for(int y = 0; y < 8; y++) {
for(int x = 0; x < 8; x++) {
cout << _board[y][x];
}
cout << endl;
}
}
private:
char _board[8][8];
};
int main() {
CheckerBoard cb;
cb.initBoard();
cb.printBoard();
return 0;
}
我认为这与我循环错误有关,并且它正在访问数组之外的值,但我没有看到它有什么问题。
答案 0 :(得分:4)
initBoard
没有做任何事情。
for(int y = 0; y < 0; y++)
y
从0
开始。 0
不小于0
,因此循环不会运行。
将棋盘的大小(8
)放在一个常数中,然后在任何地方使用,并且你不太可能使用错误的数字。