不兼容的指针类型char**和char*错误
这是主要原因不兼容的指针类型char**和char*错误,c,pointers,C,Pointers,这是主要原因 void decimal2binary(char *decimal, char *binary) { //method information goes here } 现在我得到了这个错误 int main(int argc, char **argv) { char *data[100]; if (argc != 4) { printf("invalid number of arguments\n"); return 1; } if (st
void decimal2binary(char *decimal, char *binary) {
//method information goes here
}
现在我得到了这个错误
int main(int argc, char **argv) {
char *data[100];
if (argc != 4) {
printf("invalid number of arguments\n");
return 1;
}
if (strcmp(argv[1] , "-d")) {
if (strcmp(argv[3] , "-b")) {
decimal2binary(temp, data);
}
}
}
所以它说它们是不兼容的类型,但我必须使用argv来获取数据(我就是这样被问到的)还有其他方法吗?将
数据的声明更改为:
warning: passing argument 2 of ‘decimal2binary’ from incompatible pointer type [enabled by default]
note: expected ‘char *’ but argument is of type ‘char **’
键入char
不需要指针数组,这就是您现在声明的代码。您只需要一个字节数组。我相信您的困惑源于这样一个事实:虽然数组不是指针,但当作为函数参数传递时,它们确实会衰减为指向数组第一个元素的指针。因此,简单地说decimal2binary(温度、数据)
,您正在传递一个指向数据
的第一个元素的指针,在这种情况下,您需要该指针指向字符
,而不是字符*
将数据
的声明更改为:
warning: passing argument 2 of ‘decimal2binary’ from incompatible pointer type [enabled by default]
note: expected ‘char *’ but argument is of type ‘char **’
键入char
不需要指针数组,这就是您现在声明的代码。您只需要一个字节数组。我相信您的困惑源于这样一个事实:虽然数组不是指针,但当作为函数参数传递时,它们确实会衰减为指向数组第一个元素的指针。因此,简单地说decimal2binary(温度、数据)
,您正在传递一个指向数据的第一个元素的指针,在这种情况下,您需要该指针指向char
,而不是char*
接受Json的答案,如果它对您有效的话Json给出了正确的解释(如果Json对您有效,请接受Json的回答。)Json给出了正确的解释