首先感谢刚才帮我的各位DX
这样可以把一个二维数组传入函数:
void test(int a[][10])
{
}
但是前提必须是知道传入的二维数组的边界,这就失去了函数的通用性,
如果我想用一个函数处理外部的二维数组又不失通用性,该怎样办呢?
谢谢
我刚才发的那个帖子就是解决这个问题的啊
或者就用VLA,这得用支持VLA的编译器编译,比如GCC。或者就模拟一个VLA,相关代码如下:
void test(int *a, int x, int y) //x和y是第一维和第二维
{
int **p = (int **)malloc(x*sizeof(int*));
for(i=0; i<x; ++i) p[i] = a+i*y*sizeof(int);
...............
p[1][0]..... //然后就可以p[i][j]这样的形式使用了
..............
}
int main(void)
{
int b[9][10];
scanf("%d %d", x,y); //输入x和y,但得保持x*y <= 9x10
test((int*)b, x, y);
........
return 0;
}