不兼容的指针类型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给出了正确的解释