1
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);
    }
    }
}

现在我得到这个错误

     warning: passing argument 2 of ‘decimal2binary’ from incompatible pointer type [enabled by default]

     note: expected ‘char *’ but argument is of type ‘char **’

所以它说它们是不兼容的类型,但我必须使用 argv 来获取数据(我被问到)还有其他方法吗?

4

1 回答 1

8

将声明更改data为简单:

char data[100];

您不需要指向 type 的指针数组char,这就是您现在在代码中声明的内容。您只需要一个字节数组。我相信您的困惑源于这样一个事实,即虽然数组不是指针,但当作为函数参数传递时,它们确实会衰减为指向数组第一个元素的指针。因此,简单地说decimal2binary(temp, data);,您传递的是指向 的第一个元素的指针data,在这种情况下,您需要将其作为指向 a 的指针char,而不是 a char*

于 2012-10-24T01:15:26.333 回答