我对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?
答案 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;
}