为什么程序会对foo的论点发出警告?
void foo(const char **p)
{
}
int main(int argc, char **argv)
{
foo(argv); //problem is here
return 0;
}
MinGW给出了这样的警告:
warning : passing argument 1 of 'foo' from incompatible pointer type [enabled by default]
答案 0 :(得分:0)
函数foo()期望const char **但是argv是char **。
您的代码可以用以下三种方式之一编写。
将foo()的定义更改为期望char **而不是const char **。
void foo(char **p)
或
将main()中的argv更改为const char **。
int main(int argc, const char **argv)
或
传递给foo()时将argv转换为(const char **)。
foo((const char **)argv);