I believe what you mean to do is say that the data that argv is pointing to will not be changed. As such, you should write it this way (which won't produce an error):
int f(const char* const* a)
{
return 0;
}
int g(const char* a)
{
return 0;
}
int main(int argc, char** argv)
{
g(*argv);
return f(argv);
}
And by the way, GCC also gives an error with the code you posted.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week Zac