Dipenderà dalle impostazioni con cui è stato compilato/dalla versione della CRT/da qualcos'altro ancora, probabilmente in un caso lo stack è "pulito" e dopo il buffer c'è della memoria inizializzata a 0, mentre nell'altro caso, o per chiamate interne alla CRT effettuate precedentemente o per qualche altro motivo, lo stack è "sporco" e ha su dei vecchi valori.Originariamente inviato da Salvy95
E allora mi spieghi perchè sul dev c++ da problemi e sul code::blocks non da problemi?
Cazzata. Il compilatore/la CRT semmai, in modalità debug, fa sì che gli errori siano più evidenti, ad esempio riempiendo le variabili e la memoria non inizializzate con pattern particolari e inusuali (come 0xCCCCCCCC), in modo che il programmatore se ne possa accorgere e li sistemi. Fare sì che un errore sia "invisibile" è la peggior cosa che un compilatore possa fare.I compilatori spesso intervengono ad eliminare eventuali errori al codice
In effetti, tutti i meccanismi di sicurezza che ho visto inseriti dai compilatori per evitare gli stack overflow di default generano un crash del programma, in modo che il problema non passi inosservato.

Rispondi quotando