Originariamente inviato da anx721
E perchè mai?

In C non si effetuano a runtime controlli sui limiti degli array, quindi quando scrivi

a[i] = xxx ;

il compilatore sa semplicemente che deve scrivere il valore xxx nella i-esima locazione a partire da quella puntata da 'a', non in una posizione a caso; se poi questa locazione apartiene o meno all'array non importa, sta al programmatore occuparsi di questo. Quindi se tu scrivi

prova_array[7] = 15

il compilatore va a scrivere nell'ottava posizione di memoria (tenendo conto della dimensione degli int) a partire dalla locazione puntata dal puntatore prova_array, il fatto che tale locazione non appartenga piu all'array ma chissa a cosa è ignoto al compilatore, che si limita a effettuare la scrittura;

quindi non c'è nulla di cui stupirsi.

Dev-cpp non è un compilatore, ma semplicemente un editor, che viende distribuito generalmente assieme ad un compilatore, che nelle ultime versioni è proprio MinGW; nelle versioni precedenti non so con che compilatore venisse distribuito. Il verificarsi o meno del crash puo dipedere dal compilatore e/o dal sistema operativo.
il secondo capoverso del mio primo post l'ho preso pari pari da
INTRODUZIONE ALLA PROGRAMMAZIONE ED ELEMENTI DI STRUTTURE DATI CON IL LINGUAGGIO C++, pag 115, cap 9.2