Upload to EEPROM (EEMEM) using the ide (v 1.8.8)

Hi.
Perhaps I'm stupid, but I've been browsing this forum and I wasn't able to find a solution.
I have an arduino nano and I would like to upload some things to the eeprom. I defined a suitable structure, built the code, but all that is returned is "FF". I have come to understand that the IDE does not allow to automatically upload data to the eeprom when defined via EEMEM and all I found were some sketchy hacks for v. 1.6.9.

The problem is that I need the code to work, but I am not capable of going on without help. The only thing I need to do is to load the data onto the eeprom. Do I need to switch IDE? If so what do you recommend?

Here is the sketch:

#include <Wire.h>
#include<EEPROM.h>

struct tavolo{
  uint8_t address;
  uint8_t led;
  uint8_t ledbit;
};

const tavolo tavoli[20] EEMEM={
  {0x0C, 0x20, 0x20}, {0x10, 0x20, 0x01}, {0x14, 0x20, 0x02},
  {0x18, 0x20, 0x04}, {0x1C, 0x20, 0x08}, {0x30, 0x20, 0x10},
  {0x38, 0x20 ,0x40}, {0x3C, 0x20, 0x80},{0x39, 0x21, 0x40},
  {0x3D, 0x21, 0x80}, {0x12, 0x22, 0x01}, {0x16, 0x22, 0x02},
  {0x1A, 0x22, 0x04}, {0x11, 0x21, 0x01}, {0x15, 0x21, 0x02},
  {0x19, 0x21, 0x04}, {0x1D, 0x21, 0x08}, {0x31, 0x21, 0x10},
  {0x35, 0x21, 0x20} 
};



void setup() {
Serial.begin(115200);
}


void loop() {
int address;
tavolo lotto;
address=0x00;
EEPROM.get(address,lotto);

Serial.println((uint8_t)lotto.address,HEX);
Serial.println((uint8_t)lotto.led,HEX);
Serial.println((uint8_t)lotto.ledbit,HEX);
  delay(5000);
}

Thanks

You can try something like this:

#include <Wire.h>
#include<EEPROM.h>

struct tavolo {
  uint8_t address;
  uint8_t led;
  uint8_t ledbit;
};


// you have defined 20 items but only 19 are initialised.

const tavolo tavoli[20] {
  {0x0C, 0x20, 0x20}, {0x10, 0x20, 0x01}, {0x14, 0x20, 0x02},
  {0x18, 0x20, 0x04}, {0x1C, 0x20, 0x08}, {0x30, 0x20, 0x10},
  {0x38, 0x20 , 0x40}, {0x3C, 0x20, 0x80}, {0x39, 0x21, 0x40},
  {0x3D, 0x21, 0x80}, {0x12, 0x22, 0x01}, {0x16, 0x22, 0x02},
  {0x1A, 0x22, 0x04}, {0x11, 0x21, 0x01}, {0x15, 0x21, 0x02},
  {0x19, 0x21, 0x04}, {0x1D, 0x21, 0x08}, {0x31, 0x21, 0x10},
  {0x35, 0x21, 0x20}
};



void setup() {
  Serial.begin(115200);

  // loading - this has to be done only once. Comment it out for subsequent runs.
  Serial.println("Loading EEPROM") ;
  for ( int i = 0; i < 20 ; i++ ) {
    EEPROM.put( i * 3 , tavoli[i] ) ;
  }


  // retreiving
  int item;
  tavolo lotto;

  Serial.println("Retrieving  EEPROM") ;
  for ( int i = 0; i < 20 ; i++ ) {
    
    item = i * 3 ;  // 3 bytes per item
    EEPROM.get(item, lotto);
    Serial.println((uint8_t)lotto.address, HEX);
    Serial.println((uint8_t)lotto.led, HEX);
    Serial.println((uint8_t)lotto.ledbit, HEX);
    delay(500);
  }

}


void loop() {

}