我刚开始修补多维数组中的指针,并试图将和数组传递到一个void函数中。编译器刚刚抛出了一个错误。我需要数组以指针的形式传递,然后通过引用更改它
#包括<;标准h>;
#包括<;stdlib.h>;
void Func(int**matrix,int-sizeFirst,int-sizeSecond)
{
对于(int i=0;i<;sizeFirst;i++)
{
对于(int j=0;j<;sizeSecond;j++)
{
printf(“%d\n”,矩阵[i][j]);
}
}
}
int main()
{
整数数组[2][3]={
{5,8,2},
{1,3,6}
};
int-sizeMain=sizeof(数组)/sizeof(数组[0]);
int sizeInner=sizeof(数组[0])/sizeof(数组[0][0]);
Func(数组、sizeMain、sizeInner);
返回0;
}
2D数组不是指向指针的指针。您的代码无效,因为Func不知道每行有多少列。此外,请使用正确的尺寸类型&;索引
void Func(size\t sizeFirst,size\t sizeSecond,int(*矩阵)[sizeSecond])
{
对于(int i=0;i<;sizeFirst;i++)
{
对于(int j=0;j<;sizeSecond;j++)
{
printf(“%d”,矩阵[i][j]);
}
printf(“\n”);
}
}
int main()
{
整数数组[2][3]={
{5,8,2},
{1,3,6}
};
在数组中(sizeaf=sizeot)/0;
size_t sizeInner=sizeof(数组[0])/sizeof(数组[0][0]);
Func(sizeMain、sizeInner、array);
返回0;
}
https://godbolt.org/z/Ejfrdd3nK