google è tuo amico(frase vista 200 volte
)
cmq sia se vuoi ti posso dare una breve spiegazione:
tu passi a scanf l'indirizzo di un'array di char su cui tu vuoi mettere l'input; come sai gli array hanno una lunghezza, se scanf trova un input più lungo dell'array che fa? non sapendo quanto è lungo il tuo array continua a sovrascrivere la memoria dove avrebbe dovuto continuare il tuo array che invece è finito; in questo modo c'è il rischio che venga modificato il valore di return permettendo ad un malintenzionato di sfruttare questo errore per far eseguire codice estraneo al tuo programma (te l'ho spiegato malema il fatto è che è una materia complessa
)