Modificando una cadena char * const
Yo sé esoconst char *
es un puntero a un personaje const, mientras quechar *const
Es un puntero constante a un char. Estoy probando esto en el siguiente código:
const char *s = "hello"; // Not permitted to modify the string "hello"
char *const t = "world"; // Not permitted to modify the pointer t
s = "hello2"; // Valid
// t = "world2"; // Invalid, gives compilation error
// *(s + 1) = 'a'; // Invalid, gives compilation error
*(t + 1) = 'a'; // Why does this not work?
La última línea no da ningún error, pero hace que el programa termine inesperadamente. ¿Por qué está modificando la cadena apuntada port
¿No permitido?