const int width = 100, height = 100;
void clearBoard(bool *board[]);
int main(int argc, char *argv[])
{
bool gameboard[width][height];
clearBoard(gameboard);
QApplication a(argc, argv);
MainWindow window;
window.show();
return a.exec();
}
void clearBoard(bool *board[]){
for(int x = 0; x < width; x++)
for(int y = 0; y < height; y++)
board[x][y] = false;
}
手头的错误是:
C2664: 'void clearBoard(bool *[])' : cannot convert argument 1 from 'bool [100][100]' to 'bool *[]'
我认为我对指针如何工作以及2D指针有基本的了解,但由于某种原因,这不起作用。如果有人能解释我的错误,我会很高兴。
答案 0 :(得分:1)
当将n维数组作为函数参数传递时,您只能隐含第一维。请尝试:
void clearBoard(bool board[][height]){
for(int x = 0; x < width; x++)
for(int y = 0; y < height; y++)
board[x][y] = false;
}