'ne Compilerausgabe wäre sehr hilfreich...
Edith sagt:
Bei nem kurzen Querblick fällt mir auf, dass das hier völliger Blödsinn und sehr gefährlich ist:
scanf("%s", &pupils[iCount].surname[10]);
Zunächst schreibt scanf so viele Zeichen rein, wie es liest und wenn Du Pech hast, deutlich mehr als die 9 Zeichen die in euer char array reinpassen. Also beim Format Modifier die maximale Länge angeben oder ne sicherere Methode als scanf verwenden.
Und dann übergebt Ihr scanf das 10. Element eures surname arrays. Erstens existiert das nicht, und zweitens wollt Ihr sicherlich an den Anfang des Arrays schreiben. Korrekt wäre also folgendes (ohne Garantie, ich habs jetzt nur durch den Compiler in meinem Kopf gejagt:
scanf("%9s", &pupils[iCount].surname);
Notiz: muss da überhaupt noch der Adressoperator angewendet werden? das liefert doch schon einen Zeiger auf das erste Element zurück... Also evtl. ohne & versuchen.
Ob das das Problem ist was Ihr sucht, weiß ich nicht...
mfg, Christian