Originariamente inviato da Salvy95
Se non chiudi una stringa, alcuni compilatori continuano a scriverci sopra
Il compilatore non c'entra niente, è il codice che è sbagliato, se la stringa non è NUL-terminata è normalissimo che la printf vada avanti a cercare il NUL prima di fermarsi.
Inoltre le stringhe literal sono NUL-terminate automaticamente, non c'è bisogno di aggiungere il \0 anche in fondo a "testo di prova".

@simo_85: occhio, prova è un array di 30 char e stai scrivendo sul 31° => buffer overflow.