简体   繁体   English

C++ 编辑二维数组中的值

[英]C++ edit value in 2d array

void update(bool **board){
    *(*(board + 2) + 1) = true;
}

int main(){
    bool board[3][2] = { false };

    update(board);

    for (int i = 0; i < 3; i++){
        for (int j = 0; j < 2; j++){
            if (board[i][j] == true){
                cout << "board[" << i << "][" << j << "] is true;" << endl;
            }
        }
    }
}

Where am I wrong?我哪里错了? Also, can you please talk some more about arrays and pointers?另外,你能不能多谈谈数组和指针?

When you have a function当你有一个功能

void update(bool **board){
    *(*(board + 2) + 1) = true;
}

it's wrong to call it using:使用以下方法调用它是错误的:

bool board[3][2] = { false };
update(board);

board decays to bool (*)[2] , not bool** . board衰减到bool (*)[2] ,而不是bool**

You need to define update as:您需要将update定义为:

void update(bool (*board)[2]){
     board[2][1] = true; // Simpler
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM