我在corversi游戏的C 程序上遇到了麻烦。基本上,我的问题是试图在退出功能后获得一个2D数组(这是一个私人类变量)。该数组被声明为类板的私人变量,如下所示:( max_ize = 10,但数组大小由主中的第一个参数控制。)
private:
//array variable for the board
char Board[MAX_SIZE][MAX_SIZE];
int BoardSize;
};
这是我创建木板的地方,将其设置为所有破折号开始。我用cout调试了它,以验证它的工作正常,而且确实如此。
void Board::CreateBoard(){
char Board[BoardSize][BoardSize];
//Sets the board to be all dashes
for (int i=0; i < BoardSize; i++){
for (int j=0; j < BoardSize; j++){
Board[i][j] = '-';
cout << Board[i][j] << " ";
}
}
}
这是打印板函数,当称为它时,它简单地打印了gibberish。我怀疑这是因为董事会在createboard()函数结束后恢复到了以前的状态。
void Board::PrintBoard(){
//Prints out the array board
for(int i=0;i < BoardSize;i++){
for(int j=0;j < BoardSize;j++){
cout << Board[i][j];
}
}
}
我是C 和课程的新手,并且不太了解指针等。如何在功能之间使董事会更新和保持这种方式?任何反馈都将不胜感激,谢谢!
内部
void Board::CreateBoard()
您已经声明了用-
填充的局部变量char Board[BoardSize][BoardSize]
。
但是在你的
void Board::PrintBoard()
我认为您正在调用班级定义的char Board[MAX_SIZE][MAX_SIZE]
。
因此,您正在设置一个本地变量并打印未设置的类变量,因此怪异的输出。