I don't understand why *argv[] and **argv have the same meaning when used as a fct parameter.
char **foo; /* a pointer to a pointer to char */
char *bar[]; /* an array of pointers to char, of unspecified size */
*argv[] is nothing more than syntactic
sugar for **argv (Note that this discussion is valid only for argv when used as function
parameter. )