Oi Felipe,
Em qualquer vetor, seja ele de inteiro, reais ou caracteres, você consegue acessar espaços de memórias que estão fora do seu tamanho, desde que ela exista. Isso acontece porque quando fazemos v[x] equivale a fazermos &v + x, ou seja, pegamos o ponteiro para o vetor v e andamos mais x endereços à frente.
Com relação a string, você está tendo esse problema porque não esta setando o caracter de fim de string, esse marcador é representado por '\0'. Funciona assim, se você tem um vetor 's' de 'n' caracteres você deve fazer s[n] = '\0' para que o sistema saiba que a sua string acaba na posição n-1.
[]'s
Vinicius
Fórum