i+1 will give 256, which is almost impossible to fit in a byte variable, even if you bend the edges of it maybe 0+i could work better. Even with it... you defined a 255 bytes array while your read 256 value. you should define a 256 bytes array size.

Out of curiosity, why are you using an array to hold the whole EEPROM ?