Quick question - using Strings in typedef structures...

cattledog:
Even if you unplug the Arduino and reconnect it again, or only do a read with the same sketch, the sketch can appear to work. The data in the memory location which the pointer references can still be unchanged.

That sounds very unlikely; after a reset (and obviously power cycle), memory is initialised (to my knowledge).