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来获取数据(我被问到的方式)还有其他方法吗?
答案 0 :(得分:8)
将data
的声明更改为:
char data[100];
您不需要一个指向数组char
的指针数组,这就是您现在声明的代码。你只需要一个字节数组。我相信你的困惑源于这样一个事实:虽然数组不是指针,但它们在作为函数参数传递时会衰减成指向数组第一个元素的指针。因此,只需说出decimal2binary(temp, data);
,就会传递指向data
的第一个元素的指针,在这种情况下,您需要指向char
的指针,而不是{{1} }}