Originariamente inviato da MItaly
"va in timeout" = il programma attende qualcosa per un po', se non lo riceve entro un certo tempo va in timeout
"va in loop" = continua a ripetere lo stesso blocco di codice all'infinito
Sono due cose che non c'entrano nulla.
Nello specifico probabilmente il problema non ha a che vedere con nessuno dei due casi, ma piuttosto riguarda il fatto che scrivendo più caratteri del dovuto si vanno a sovrascrivere porzioni di stack innocenti, per cui il programma inizia a fare cose strane (ad esempio se si sovrascrive l'indirizzo di ritorno il programma salterà ad una locazione di memoria che non c'entra nulla).
Tra l'altro un compilatore/linker recente ti segnalerà di sicuro che la gets è ultra-deprecata.
La documentazione, questa sconosciuta...
Non risolvi niente così, visto che quando la gets ritorna se sono stati inseriti troppi caratteri il danno ormai è fatto (è stato corrotto lo stack).
Spiegati meglio: vuoi sapere quante cifre avrà un int una volta convertito in stringa?