Storing arrays of strings (two-dimensional string arrays) in the EEPROM

Hello,

I'm writing a code were I have some fixed messages shown on a Nokia 5510 display, such as menu options, which are recorded in an array of strings. I use a strategy with "for" commands to display and optimize the code, so I need all strings to be in a array where I can access them by their index.

The problem is that they are consuming a lot of RAM and I would like to leave them saved in the EEPROM to free up space.

Almost all the examples I saw dealt with one-dimensional arrays like: char Str6 [15] = "arduino"

But in my code I have arrays with 2 dimensions like: const char *Config[] = {"Opt1:", "Opt2:", "Opt3:", "Opt4:", "Opt5:", "Opt6:", "Back"};

When I try to use the PROGMEN statement I receive the error message: variable 'Config' must be const in order to be put into read-only section by means of 'attribute((progmem))'

Has anyone managed to write this type of array to the EEPROM?

Thank you!

Does this help? https://www.nongnu.org/avr-libc/user-manual/pgmspace.html

I think, Progmem would be a much smarter place to save them, since almost all arduino boards have following sizes: EEPROM > RAM > PROGMEM

Since you can change EEPROM on runtime, I can encourage you to use EEPROM for stuff like Settings or debug logging.

How to use PROGMEM: https://www.arduino.cc/reference/en/language/variables/utilities/progmem/