Originariamente inviato da davide356
Ho chiesto solo se qualcuno sà perchè succede questa cosa modificando i char con i long
Nessuno può sapere una cosa così generica e astratta se non la si cala in un codice concreto.

Può anche essere che il problema di "corruzione" dei dati avvenisse anche con gli array di char ma che tu non te ne sei accorto perché la parte corrotta della stringa non è utilizzata in un dato momento.
In un array di char di 30 caratteri, se gli ultimi byte si corrompono, la stringa non ne risente se non occupa tutto lo spazio. Ma in un long di 4 byte, la modifica di un solo byte ne compromette il valore.