我想用矩阵参数声明过程。但我得到错误。如何声明矩阵参数?
#include <stdio.h>
//I get error when I declare this
void solvingSudokuPuzzle(int [][]);
int main()
{
return 0;
}
void solvingSudokuPuzzle(int _papanSudoku[9][9]) {
}
答案 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)