Arrays y punteros son cosas diferentes. Un puntero se puede usar para acceder a un elemento en la matriz. Para poder inicializar una matriz, necesita declarar una matriz, no un puntero.
Para mostrar con claridad la diferencia intente esto:
int[] ia = {1, 2, 3, 4, 5, 6, 7, 8};
int* ip = ia;
printf("sizeof(ia): %zu, sizeof(ip): %zu", sizeof(ia), sizeof(ip));
El primero debe imprimir el tamaño de la matriz, el segundo el tamaño de un puntero int.
Lo curioso de C es que cuando una matriz se pasa como parámetro de una función, se descompone en un puntero. Ver más en la sección 2.3 de http://www.lysator.liu.se/c/c-faq/c-2.html. La razón principal acepta argv**
en lugar de argv*[]
es que argv*[]
se descompone en argv**
cuando se pasa como parámetro de función.
s/"john /" john "?? – hari
Marcelo, no olvide marcar una respuesta como aceptada si resolvió el problema o pedir más aclaraciones. – sidyll