Como bien dice maunix si sobrepasamos las posiciones que ocupa el string escribimos en las posiciones adyacentes. Este efecto que es comun en todos los compiladores de "C" se conoce como "buffer overflow" y debe ser el programador el encargado de comprobarlo. En el mundo de los hackers este error se ha explotado sobremanera para producir la DoS "Denegación de Servicios" e inclusive para obtener una puerta de entrada a un ordenador. Por que "C" no comprueba el indice en los buffer, pues simplemente por eficiencia, el código corre mas deprisa si el compilador no hace esta comprobación, ya que en la mayoria de los casos no se produce rel desbordamiento del buffer y las instrucciones añadidas son innecesarias.