C - 如何使用矩阵(多数组)参数声明过程

时间:2015-04-20 09:58:17

标签: c multidimensional-array declaration procedure

我想用矩阵参数声明过程。但我得到错误。如何声明矩阵参数?

    #include <stdio.h>

    //I get error when I declare this
    void solvingSudokuPuzzle(int [][]);

    int main()
    {
        return 0;
    }

    void solvingSudokuPuzzle(int _papanSudoku[9][9]) {

    }

enter image description here

4 个答案:

答案 0 :(得分:4)

void solvingSudokuPuzzle(int [9][9]);

void solvingSudokuPuzzle(int [][9]);

void solvingSudokuPuzzle(int (*)[9]);

是声明函数原型的正确方法。

答案 1 :(得分:2)

您只能跳过二维数组的第一部分,因此请将其更改为

void solvingSudokuPuzzle(int [][9]);
                             ^
                            you can skip a value here

答案 2 :(得分:1)

如果您不想指定尺寸,可以使用VLA(Variable-length arrays):

#include <stdio.h>

void solvingSudokuPuzzle(int, int(*)[]);

int main()
{
    return 0;
}

void solvingSudokuPuzzle(int size, int (*_papanSudoku)[size]) {

}

使用以下方式调用:

solvingSudokuPuzzle(9, arr);

但正确的方法是:

void solvingSudokuPuzzle(int (*_papanSudoku)[9]) {

void solvingSudokuPuzzle(int _papanSudoku[][9]) {

答案 3 :(得分:0)

如果尺寸不固定,则使用双指针,如:

(int **myMatrix)