קודם-כל..
אתה יכול פשוט לקדם את המצביע של הbuffer. buffer + sizeof(somestruct) נגיד. אבל למה בכלל להשתמש בmemcpy? בשביל מה הbuffer קיים, מה אתה עושה? חבל הרי להעתיק סתם, ולתפוס עוד מקום בזיכרון, כשאתה יכול פשוט לעשות הסבת מפורשת של מצביעים מנניח char* לyourstruct* .... ואז להתייחס לשדות שלפי הstruct הזה.