Cita: Estás escribiendo en una zona de memoria no reservada, es decir de b[5] en adelante, por eso te da un error de violación de segmento.
Eso lo se, pero mi duda no es acerca de eso, si no que querría saber el porqué de que la violación de segmento no se produzca ya con 5 o 6 caracteres (ya que b[5] sólo podría almacenar 4, según lo que yo creía y según lo que me indica el compilador), si no que puedo almacenar algunos más en el espacio que supuestamente hay reservado (en las pruebas que realicé la violación de segmento sólo se producía a partir de 28 carácteres... que es bastante más), al introducirlos mediante cin.