Diciamo che va in BOF nel senso che sicuramente sovvrascivi una zona di memoria che non è stata allocata per l'array. E' possibile che per un solo elemento in più non succeda nulla di particolare.
Puoi fare delle prove. Dichiara l'array dentro al main() e non come variabile globale in modo da assicurarti che venga allocato nello stack. Utilizza sempre lo stesso codice e prova a vedere dopo quanti byte oltre la giusta dimensione il programma va in crash... in quel caso hai probabilmente sovvrascritto l'indirizzo di ritorno...
Ancora meglio sarebbe fare delle prove leggendo i dati da un file e memorizzandoli nell'array, in questo modo il codice rimane sempre uguale.