将2d数组传递给方法

时间:2015-02-24 18:28:30

标签: c++ arrays multidimensional-array

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指针有基本的了解,但由于某种原因,这不起作用。如果有人能解释我的错误,我会很高兴。

1 个答案:

答案 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;
}