Cita:
Iniciado por vangodp perfecto profesor :)
debería chillar de ambas formas. ¿En el caso del (char*)"hola mundo!" es por que le hago una convercion? Realmente no entiendo la diferencia.
Efectivamente, (char*) es un cast explícito y lo que tiene C es que asume que sabes lo que estás haciendo y no se preocupa de si la conversión es válida o no... en este caso, la variable que has creado es de tipo char* y recibe un char* (realmente es un const char*, pero el const "desaparece" al hacer la conversión), por lo que el compilador no se queja... hasta que te da por intentar modificar el contenido de esa cadena.