Das Array serpa wird vom Ende nach vorne hin durchlauften, und zwar mit dem Zeiger serp, der auf Element *hinter* serpa initialisiert wird! (also serp = &serpa[SERPA_SIZE]).
Da der Zugriff über foo = *--serp (oder so) geschieht, wird als erstes serpa[SERPA_SIZE-1] gelesen.
Lesezeichen