来自' char **'的无效转换到' int'在C?

时间:2015-05-25 20:50:59

标签: c compiler-errors

我对C很陌生,我在大部分项目中都使用了online C compiler。编译器给了我以下消息:

  

dc0dtnYW.c:在函数' int main(int,char **)':   dc0dtnYW.c:48:错误:来自' char **'的无效转换到' int'

参考下面第二行:

int main (int argc, char* argv[]) 
{   int load (argv);
    return 0;}

我的int load函数如下所示:

int load (char* filename) {

我还没有在网上发现此问题的任何其他情况。为什么编译器说我试图将char **转换为int?

3 个答案:

答案 0 :(得分:1)

int load(argv)行没有调用load函数。相反,它会创建一个名为load的整数变量,并从argv初始化它(它不起作用,因为它不是整数)。

您可能想要load(argv[1])

答案 1 :(得分:0)

argv是一个指向字符的指针数组。您正在尝试将其转换为指向字符的指针。 argv是一个命令行参数数组,而不是字符串。

答案 2 :(得分:0)

如果您已准备好声明函数int load (char* filename),则在调用该函数时无需再次使用int。除此之外,您必须将argv[1]传递给函数argv。如果您这样做,Argv[1]会将流程的第一个参数传递给load

int main (int argc, char* argv[]) 
{  
    load (argv[1]); // You dont need int in this line 
    return 0;

}