>>1
Because passing around large structures on the stack is
GAY AS FUCK.
Are you malloc()ing a new structure for the person and returning? If so an alternative method is to have them pass in a pointer to that structure then you can modify the structures contents to your heart's content, and it will be modified for the caller too.