You will be storing pointers to RAM into the EEPROM,
for Strings only the descriptor is saved, not the buffer that contains the data.
While it may seem to work directly after storing it, it will fail after a restart,
because the RAM content probably changes.
#include <EEPROM.h>
String value = "I was saved to EEPROM";
String readBack;
void setup() {
Serial.begin(250000);
EEPROM.put(0, value);
EEPROM.get(0, readBack);
Serial.println(readBack);
value = "*crap crap crap crap*";
Serial.println(readBack);
}
void loop() {}
I was saved to EEPROM
*crap crap crap crap*
Is it doing something horrible to the memory?
When deleting such cloned buffers you could run into problems with the heap,
because buffers will be freed twice.