Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么将矩阵传递给函数时会出现编译错误_C_Compilation_C99 - Fatal编程技术网

C 为什么将矩阵传递给函数时会出现编译错误

C 为什么将矩阵传递给函数时会出现编译错误,c,compilation,c99,C,Compilation,C99,我能知道我哪里错了吗?我需要将矩阵传递给函数以进行打印,但编译时会出现一些错误。。因为我要传递一个矩阵,所以我使用了**p,但我不知道为什么会出现编译错误 这是编译错误: ricorsione_TdE_19_02_2018.c: In function ‘main’: ricorsione_TdE_19_02_2018.c:26:9: warning: passing argument 1 of ‘stampa’ from incompatible pointer type [-Wincompa

我能知道我哪里错了吗?我需要将矩阵传递给函数以进行打印,但编译时会出现一些错误。。因为我要传递一个矩阵,所以我使用了**p,但我不知道为什么会出现编译错误

这是编译错误:

ricorsione_TdE_19_02_2018.c: In function ‘main’:
ricorsione_TdE_19_02_2018.c:26:9: warning: passing argument 1 of ‘stampa’ from incompatible pointer type [-Wincompatible-pointer-types]
   26 |  stampa(M,i,j);
      |         ^
      |         |
      |         int (*)[2]
ricorsione_TdE_19_02_2018.c:4:19: note: expected ‘int **’ but argument is of type ‘int (*)[2]’
    4 | void stampa(int **p, int i, int j);
#包括
#定义最大值2
无效stampa(整数**p,整数i,整数j);
int m=0,n=0;
int main(){
int i,j,M[MAX][MAX];
对于(i=0;i
作为链接,常量边界矩阵的存储方式不同于指向指针的指针,因此这些类型不兼容

修复非常简单,只需更改原型:

void stampa(int p[MAX][MAX], int i, int j);

当询问有关构建错误的问题时,请始终包括您得到的实际错误。完整复制粘贴它们(作为文本)。另外,请在代码中出现错误的行上添加注释。不过有一个提示:。请改为编辑您的问题,而不是以注释的形式发布。那么如何使用指针解决该问题呢?编译器会告诉您它传递给函数的确切类型(“但参数的类型为'int(*)[2]”)。你可以在你的论点中使用这种类型。
void stampa(int p[MAX][MAX], int i, int j);