Non mi sembra nulla di strano, il C/C++ funziona così.

Non puoi modificare un carattere di un puntatore a stringa!