In article <8334 at umd5.umd.edu> dzoey at terminus.umd.edu (Joe Herman) writes: >fooptr = (char *) fooptr + fooptr->recsize; This (almost) should have worked. You also need to convert back to the proper pointer type before the assignment: fooptr = (struct foo *) ((char *) fooptr + fooptr->recsize);