Chiaro, stringa è dichiarato prima di prova quindi quest'ultimo viene allocato prima di stringa, di conseguenza dopo i 30 bytes in memoria ci sarà l'indirizzo di stringa, e tu con quel k <= 35 stai andando a sovrascrivere appunto l'array stringa..Originariamente inviato da Ushas
Non so se ti può aiutare, magari ti "illumina" () ma ho notato che se cambi la condizione di terminazione del for, per esempio metti k<=35, quello che viene fuori è una sfilza di 0 più lunga e invece che "Testodiprova" ci viene scritto solo "diprova".