gpt4 book ai didi

c - 传递数组地址

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:38 25 4
gpt4 key购买 nike

在我的 main 中,我这样称呼这个函数 add:

add(a,b,c,row,col);

其定义如下:

void add(int **a,int **b,int **c,int row,int col)
{

int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
c[i][j]=a[i][j]*b[i][j];
}
}
}

主要功能:......

int main()
{
int c[5][5],i,j;
int **f;
int a[5][5],b[5][5],row,col;
printf("Enter row : ");
scanf("%d",&row);
printf("Enter column : ");
scanf("%d",&col);
printf("Enter matrix A :\n");
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("Enter matrix B :\n");
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
scanf("%d",&b[i][j]);
}
}


add(a,b,c,row,col);

printf("Addition :\n");

for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf("%d\t",c[i][j]);
}
printf("\n");
}
getch();
return 0;
}

编译器给出的错误:

||warning: command line option '-Wzero-as-null-pointer-constant' is valid for C++/ObjC++ but not for C [enabled by default]|C:\Users\Amir Khasru\Desktop\matrix_add.c|5|warning: no previous declaration for 'add' [-Wmissing-declarations]|C:\Users\Amir Khasru\Desktop\matrix_add.c||In function 'main':|C:\Users\Amir Khasru\Desktop\matrix_add.c|45|error: passing argument 1 of 'add' from incompatible pointer type|||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|

最佳答案

当通过时,abc 衰减为 int (*)[5],而不是比 int **

所以你应该将你的函数重写为:

void add(int a[][5], int b[][5], int c[][5], size_t row, size_t col)
{
size_t i, j;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
c[i][j] = a[i][j] * b[i][j];
}
}
}

关于c - 传递数组地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36462670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com