Array in Structs for EEPROM

Use a pointer to char and point it to the struct. And in the for loop (controled by sizeof() on that struct), write the char pointed to by the pointer.

#define MIN(x,y) ( x > y ? y : x )

That is a dangerous macro.