将数组传递给递归函数C++有问题

将数组传递给递归函数C++有问题,c++,arrays,C++,Arrays,当我在其内部运行函数check_行时,我试图传递数组数独温度的方式有问题,但我不确定我做错了什么。我错过什么了吗 int check_row(int j_position, int generated_value, int sudoku_temp[][9]){ for (int i_position = 0; i_position < 9; i_position++) { if (generated_value == sudoku_temp[i_position][j_positi

当我在其内部运行函数check_行时,我试图传递数组数独温度的方式有问题,但我不确定我做错了什么。我错过什么了吗

int check_row(int j_position, int generated_value, int sudoku_temp[][9]){
for (int i_position = 0; i_position < 9; i_position++)
{
    if (generated_value == sudoku_temp[i_position][j_position])
    {
        generated_value = generate_number();
        check_row(j_position, generated_value, sudoku_temp[][j_position]);
    }
    else
        return generated_value;

}
}


澄清一下,问题是当我试图调用函数本身时。谢谢。

使用变量,而不是像9这样的固定长度。因为在递归中,参数可能不同

int check_row(int j_position, int generated_value, int sudoku_temp[][n])
{
    for (int i_position = 0; i_position < n; i_position++)
    {
        if (generated_value == sudoku_temp[i_position][j_position])
        {
            generated_value = generate_number();
            check_row(j_position, generated_value, sudoku_temp[][j_position]);
        }
        else
            return generated_value;

    }
}

当您想要从数组中提取值时,不能像以前那样保留空括号。另一方面,函数原型看起来很相似,而且非常好。为什么?

int sudoku_temp[][9] // A 2D array of integers second dimension of which is of size 9
或者换句话说,大小未知的数组大小为9的数组。我们没有告诉编译器数组到底有多大,在这种情况下我们也不必告诉编译器,因为它只是作为一个参数提供给我们的


另一方面,在访问元素时,我们不能留下空括号,原因很简单:我们想要访问一个元素,编译器必须知道哪个元素。切入正题-删除空[]应该可以解决您的问题。

这是什么问题?如果是编译错误,请将其粘贴到此处。数独temp[][j_position]错误:需要一个表达式希望这对您有所帮助:问题实际上是函数内部的函数,很抱歉造成混淆。我想我的问题是,第二次尝试将数组传递到check_第8行时,我不确定如何执行。我传递的数组来自我的主函数,所以当我在这个check_row函数中时,我不知道如何调用它。实际上,我又看了一遍你的代码。你应该尝试一些关于数组的在线课程,它们一开始在C语言中并不容易理解,尤其是多维数组。