我正在为连接4游戏编写一个类,当我去绘制电路板时遇到问题,错误,EXC_BAD_ACCESS(代码= 1访问= 0x0),当我尝试引用我的时候不断出现game_board成员变量。 我究竟做错了什么? 提前谢谢。
#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;
};
答案 0 :(得分:2)
Board::Board()
{
char** game_board=new char*[SIZEX];
^^^^^^
在这里,您宣布一个新的char** game_board
,并在您的班级game_board
尚未分配时为其分配。
我认为你的意图是使用班级成员Board::game_board
。在这种情况下,你不应该声明它,而只是按原样使用它(它已经被声明)。
Board::Board()
{
game_board=new char*[SIZEX]; // Or this->game_board=new char*[SIZEX]