可能重复:
Passing multidimensional arrays as function arguments in C
在C中, 如果我想要一个函数来接收二维数组,我可以使用*表示法作为函数参数
int (int my2dary[][10]); //This is what I do not want.
答案 0 :(得分:0)
是的,您将指针传递给int
数组int func(int (*my2dary)[10]);
你称之为
int a[5][10];
func(a);
虽然,func
并不知道my2dary
中有多少元素,但您也必须提供一个数字
int func(int n, int (*my2dary)[10]);
并致电
int a[5][10];
func(5, a);
请参阅How to interpret complex C/C++ declarations或The ``Clockwise/Spiral Rule''。
答案 1 :(得分:0)
如果你的问题是在编译时你不知道数组的大小,你可能需要:
int func(int *array, int size)
{
int n,m;
...
array[m*size+n]; /* = array[m][n] if in the caller: int array[x][size]; */
}
可选(很可能你需要)你可以传递第二个大小的参数(x)来测试数组边界