Modificando uma cadeia char * const
Eu sei dissoconst char *
é um ponteiro para um const char, enquantochar *const
é um ponteiro constante para um char. Eu estou testando isso no seguinte 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?
A última linha não apresenta nenhum erro, mas faz com que o programa termine inesperadamente. Por que está modificando a string apontada port
não permitido?