检查运行时错误#2

时间:2014-12-11 18:00:21

标签: c++

我显然是初学者,我有错误,说检查运行时错误#2 - 变量'游戏'的堆栈已损坏。

我正在尝试将我的电路板初始化为单独的功能,因此我可以根据输入更改电路板。这就是为什么我有两个功能来做到这一点。 我不明白为什么,有人可以帮忙吗?

#include <iostream>
using namespace std;

class ticTacToe
{
private:
    char board[3][3];

public:
    void initiate();
    void postboard();
};

int main()
{
    ticTacToe game;
    game.initiate();
    game.postboard();
}

void ticTacToe::initiate()
{
    board[3][3] = '0';
    int n = 1;

    for (int x=0; x<3; x++)
    {
        for (int y=0; y<3; y++)
        {
            board[x][y] = '0' + n++;
        }
    }           
}

void ticTacToe::postboard()
{
    for (int x=0; x<3; x++)
    {
        for (int y=0; y<3; y++)
        {
            cout << " " << board[x][y] << " ";
        }
        cout << endl;
    }
}

1 个答案:

答案 0 :(得分:0)

你不能这样做

board[3][3] = '0';

您正尝试将char '0'分配给[3][3]的元素board,但board的唯一有效索引是[0] } [2]

你也做不到

board[x][y] = '0' + n++;

因为它会产生undefined behavior