本題とは少しずれるが、GetItem関数の第一引数は
constとしてポインタを変化させない方が親切だな。

当然、GetItemにポインタ変数が1つ増えるが。

char all[PERSON_FNAME_SIZE+PERSON_LNAME_SIZE+PERSON_AGE_SIZE];