为什么计数从char数组输出错误的字符

时间:2014-12-15 09:54:39

标签: c++ arrays cout

我有一个多维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;
}

我认为这与我循环错误有关,并且它正在访问数组之外​​的值,但我没有看到它有什么问题。

1 个答案:

答案 0 :(得分:4)

initBoard没有做任何事情。

for(int y = 0; y < 0; y++)

y0开始。 0不小于0,因此循环不会运行。

将棋盘的大小(8)放在一个常数中,然后在任何地方使用,并且你不太可能使用错误的数字。