将二维数组传递给方法

Passing a 2d array to a method

本文关键字:方法 二维数组      更新时间:2023-10-16
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 指针有基本的了解,但由于某种原因这不起作用。如果有人能解释我做错了什么,会很高兴。

将 n 维数组作为函数参数传递时,只能让第一维是隐式的。请尝试:

void clearBoard(bool board[][height]){
       for(int x = 0; x < width; x++)
        for(int y = 0; y < height; y++)
            board[x][y] = false;
}