传递2d数组以在c中运行

时间:2014-07-19 09:31:42

标签: c

有没有办法将2D数组传递给函数function(arr,m,n) 和函数defenition为void function(int **p,int m,int n) 即,没有明确指定数组大小??

1 个答案:

答案 0 :(得分:1)

Let us C对如何将两个D数组作为参数传递有一个很好的解释。

我通常使用这两种方式将2D数组作为参数传递。但是您需要明确指定大小。

void display1(int q[][4],int row,int col){
    int i,j;
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
            printf("%d",q[i][j]);
        printf("\n");
    }
}

void display2(int (*q)[4],int row,int col){
    int i,j;
    int *p;
    for(i=0;i<row;i++)
    {
        p=q+i;
        for(j=0;j<col;j++)
            printf("%d",*(p+j));
        printf("\n");
    }
}
int main()
{
   int a[3][4]={1,2,3,4,5,6,7,8,9,0,1,6};
   display1(a,3,4);
   display2(a,3,4);
}