我正在尝试创建一个更改2d数组并将其保存更改的函数
该代码正在运行,但是出现有关指针的警告,并且我不知道如何使用我的C语言基础知识来绕过它
#include <stdio.h>
int size = 0;
void functionName(char (*tab)[size][size]) {
for(int i = 0; i < size; i++) {
for(int j = 0; j < size; j++) {
(*tab)[i][j] = (*tab)[i][j]-'0';
}
}
}
int main() {
scanf("%d", &size);
char tab[size][size];
for(int i = 0; i < size; i++) {
for(int j = 0; j < size; j++) {
scanf("%c", &tab[i][j]);
}
}
functionName(tab);
return 0;
}
最佳答案
发生此错误是因为当作为参数传递时char tab[][]
衰减为char (*)[]
,与functionName
期望的类型不匹配。要解决不一致问题,请执行以下任一操作:
tab
来将char (*)[][]
作为functionName(&tab)
传递;functionName
的参数类型更改为void functionName(char tab[size][size])
,并修复函数内部的代码以使用tab[i][j]
而不是(*tab)[i][j]
。关于arrays - 从不兼容的指针类型传递 'functionName'的参数1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64841305/