Quindi è sbagliato scrivere

v[i].ID[5]='\0';

dato che i caratteri vanno da indice 0 a indice 4