将2d数组传递给c中的函数

将2d数组传递给c中的函数,c,C,有没有办法将2D数组作为function(arr,m,n) 函数防御为void函数(int**p,int m,int n) ie在没有明确指定数组大小的情况下,很好地解释了如何将两个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++

有没有办法将2D数组作为
function(arr,m,n)
函数防御为
void函数(int**p,int m,int n)
ie在没有明确指定数组大小的情况下,很好地解释了如何将两个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);
}
void display1(int q[][4],int行,int列){
int i,j;

对于(i=0;iIn short:No,没有。相关:No的可能重复。如果不显式指定数组大小,则无法将2D数组传递给函数。对于1D和2D数组,您都需要将数组大小传递给函数。可能值得注意的是,在C99中,这也适用于可变长度数组。