1

我正在为 connect 4 游戏编写一个类,当我去绘制棋盘时遇到问题,当我尝试引用我的 game_board 成员变量时,错误 EXC_BAD_ACCESS (code=1 access=0x0) 不断出现. 我究竟做错了什么?提前致谢。

#include "board.h"
#include <iostream>
using namespace std;

Board::Board()
{
char** game_board=new char*[SIZEX];
for(int i=0; i<SIZEX; i++)
    game_board[i]=new char[SIZEY];


for (int i=0;i<SIZEX;i++)
 {
    for (int j=0;j<SIZEY;j++)
    {
        game_board[i][j]=' ';
    }
 }
};
void Board::draw()
{
    for (int j=0; j<SIZEY;++j )
    {
       cout<<"|---+---+---+---+---+---+---|\n";
        for (int i=0; i<SIZEX;++i)
        {
            cout<<"| "<<game_board[i][j]<<" ";
        }
        cout<<"|\n";
   }
    cout<<"|---+---+---+---+---+---+---|\n";
};
Board::~Board()
{
    for(int i=0; i<SIZEX; i++)
        delete [] game_board[i];

    delete []game_board;

};
4

1 回答 1

2
Board::Board()
{
    char** game_board=new char*[SIZEX];
    ^^^^^^

在这里,您声明一个新的char** game_board并为它分配,而您的班级game_board仍未分配。

我认为您的意图是使用 class member Board::game_board。在这种情况下,您不应该声明它,而应该按原样使用它(它已经声明过)。

Board::Board()
{
   game_board=new char*[SIZEX];  // Or this->game_board=new char*[SIZEX]
于 2013-04-12T18:45:46.827 回答