extern se suele usar en las cabeceras (.h) para compartir un simbolo entre modulos
El extern ahi no te sirve de nada, sacandolo tendras un puntero a char y su ambito sera todo el modulo.
Esto está mal:Código: Cchar *cadena; porque tú lo que quieres es un puntero a un array de punteros, esto es:Código: Cchar *cadena[];//O también:char **cadena;