使用二维指针
int **num = (int **)malloc(n * sizeof(int *));
for(y = 0;y < n;y++)
num[y] = (int *)malloc(n * sizeof(int));
//原型
int function(int *num,int size_x,int size_y) ;
追问这样在函数里还能用a[][]这种两个方括号的方式使用数组吗?
追答可以的
抱歉,忽然发现写错了,function(int ** num)
下面是以前写的,一个问题的答案
//DATATYPE 数据类型
/*变长数组的创建
1.如果编译器支持 c99,则可以直接使用变长数组 num[y][x]
2.一维数组模拟二维数组,优点是简单,缺点是下标不方便
DATATYPE *num = (DATATYPE *)malloc(x * y * sizeof(DATATYPE));
3.二级指针申请二维数组num[y][x]
DATATYPE **num = (DATATYPE **)malloc(y * sizeof(DATATYPE *));
for(i = 0;i < y;i++)
num[i] = (DATATYPE *)malloc(x * sizeof(DATATYPE));
4.数组指针申请二维数组:因为参量 DATATYPE *num[不支持变量] 的原因,无法在函数间传递数据
*/本回答被提问者采纳