el formato ‘% s’ espera un argumento de tipo ‘char *’, pero el argumento 2 tiene el tipo ‘char (*)

Estoy creando un progtwig usando C , y tengo esta línea en mi código:

 scanf("%s", &path); 

Cuando compilo el archivo fuente, recibo esta advertencia:

 main.c:84:2: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[64]' [-Wformat] 

Y esta es la statement para la variable de path :

 char path[64]; 

¿Por qué estoy viendo este error? ¿Y cómo puedo solucionarlo?

Una matriz ya es un objeto parecido a un puntero (como señala dreamlax). No necesitas el operador & , ya que declara

 char path[64]; 

es equivalente a establecer la path a un puntero a una región de memoria de 64 bytes.

El especificador de formato %s requiere que suministre un char * , que es un puntero a char . Estás pasando &path , que es un puntero a una matriz. Solo puede pasar la path por sí misma, lo que se evaluará como un puntero al primer elemento de la matriz (igual que &path[0] ).

intente este scanf("%s", path); en su lugar porque creo que path es una matriz y un puntero a una matriz es el nombre de la matriz en sí (array == & array)