¿Qué estás pretendiendo conseguir con esa declaración?
- almacenar un número indeterminado de cadenas de longitud N??
- almacenar N cadenas de longitud indeterminada??
- almacenar una única cadena de caracteres pero te has confundido al añadir el asterisco??
Si tu respuesta es una de las dos primeras tengo una mala noticia para tí... el asterisco indica que hay memoria que vas a gestionar de forma dinámica (con malloc, free)... pero tú no estás haciendo tal cosa. En su lugar estás accediendo a memoria no reservada (y eso es lo que hace que tu programa falle).
Imagino que lo que intentas es la opción 2... en ese caso puedes evitar el uso de memoria dinámica si pasas a usar una array de longitud fija:
El ejemplo anterior declara un array de N elementos, cada uno de los cuales te permitirá almacenar una cadena de hasta 100 caracteres (no te olvides de que el caracter nulo de final de cadena también cuenta). Basta con que adaptes ese '100' a tus necesidades.
Un saludo