将二维数组传递给c中的函数
可能重复:将二维数组传递给c中的函数,c,arrays,pointers,C,Arrays,Pointers,可能重复: 在C中, 如果我想让一个函数接收二维数组,我可以用*符号表示函数参数吗 int (int my2dary[][10]); //This is what I do not want. 是的,您传递一个指向int数组的指针 int func(int (*my2dary)[10]); 你管它叫什么 int a[5][10]; func(a); 虽然,func不知道在my2dary中有多少个元素,所以您也必须给出一个数字 int func(int n, int (*my2dary)
在C中, 如果我想让一个函数接收二维数组,我可以用*符号表示函数参数吗
int (int my2dary[][10]); //This is what I do not want.
是的,您传递一个指向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);
请参阅或。如果您的问题是在编译时不知道数组的大小,您可能需要:
int func(int *array, int size)
{
int n,m;
...
array[m*size+n]; /* = array[m][n] if in the caller: int array[x][size]; */
}
或者(很可能您需要)您可以传递第二个size参数(x)来测试数组边界