Saving arrays in EEPROM using ARDUINOMEGA

EEPROM.write() and EEPROM.read() operate on bytes. To save an int:

EEPROM.write(0, highByte(reference));
EEPROM.write(1, lowByte(reference));

To read an int:

int val = (EEPROM.read(0) << 8) + EEPROM.read(1);

You might want to look at the EEPROM_readAnything() and EEPROM_writeAnything() functions:
http://www.arduino.cc/playground/Code/EEPROMWriteAnything