il secondo capoverso del mio primo post l'ho preso pari pari daOriginariamente 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.
INTRODUZIONE ALLA PROGRAMMAZIONE ED ELEMENTI DI STRUTTURE DATI CON IL LINGUAGGIO C++, pag 115, cap 9.2