二维结构体数组和二维指针的函数,高人进

发布网友 发布时间:2022-04-20 06:26

我来回答

1个回答

热心网友 时间:2023-08-03 17:24

规定若是将二维数组作为实参传递给函数,那么在函数的参数声明中必须显示地指明数组的列数,因此可以改为如下:
将int mColoring(int n, int m, int** a) 改为int mColoring(int n, int m, int (*a)[4]),或者直接就写为int mColoring(int n, int m, int a[4][4]),亦或者int mColoring(int n, int m, int a[][4])。参数的行数没有关系。追问大佬 如果将二重指针作为实参传递给函数,那么在主函数里面怎样改呢

追答

你说的二重指针如果指的就是二维数组的话,在主函数里面不用修改,就按照你提问里面的就好了。

补充,如果你真的需要直接传入二重指针int **p,不是二维数组的话,可以采取动态内存分配的方法。下面的二重指针pp就可以直接传入int mColoring(int n, int m, int** a) 了。

#define ROW 4
#define COL 4
int** pp;
pp = (int **)malloc(sizeof(int *)*ROW);
for(i=0;i<ROW;i++)
{         
    pp[i] = (int *)malloc(sizeof(int)*COL);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com