首页 > 解决方案 > 在 C++ 中将数组设置为函数的可修改参数

问题描述

我正在尝试将数组设置为自制函数的输入参数,我想在其中修改数组的值。为此,我尝试将函数定义中的输入数组设置为指针,但给我带来了一些麻烦。

*.hpp 文件的部分可以在这里看到:

void CrossWall(int, int, bool[]);

*.cpp 文件的部分是下一个:

void NODE::CrossWall(int robot_x, int robot_y, bool done_checking[]){

    if (((robot_x+1) > (current_map.CheckLength() - 1)) && !done_checking[3] ){
        available_movements[3] = 0;
        done_checking[3] = true;
    }
    if (((robot_x-1) < 0 ) && !done_checking[2]){
        available_movements[2] = 0;
        done_checking[2] = true;
    }
    if (((robot_y+1) > (current_map.CheckHeight() - 1)) && !done_checking[0]){
        available_movements[0] = 0;
        done_checking[0] = true;
    }
    if (((robot_y-1) < 0 ) && !done_checking[1]){
        available_movements[1] = 0;
        done_checking[1] = true;
    }
}

我要修改的数组是布尔数组(那里唯一的一个)。

标签: c++arraysfunctionpointers

解决方案


我想我发现了一个困惑点:

不会这样做,因为它不是指针。

其实就是一个指针:什么是数组到指针衰减?


推荐阅读