Need some PROGMEM suggestions

Hi all,

Here is what I am planning to do: I have many short messages that I display on LCD in different places in my program. They add up to a few hundred bytes. So I'm migrating them with PROGMEM.

From sample codes I wrote these lines:

PROGMEM prog_char msg_00[]="Any key to start";
PROGMEM const char *msg_item[] = {msg_00};
char msg_buffer[20];
//Do something.

Basically I store a number of strings in flash, then store their address in a pointer array also in flash (PROGMEM sample code). This way seems to work best for a series of strings like menu options. You may index which message to extract with a menu item indicator variable.

If these messages I have are not displayed in secquence, do I still have to define a pointer array or can just use the char array name in some way? Thank you!

Psudo code

PROGMEM prog_char msg_00[]="Any key to start";
char msg_buffer[20];
strcpy_P(msg_buffer,(char*)msg_00); // How to make this line work? 
//Do something.

There's not a whole a lot about PROGMEM on >:(

There's not a whole a lot about PROGMEM on arduino.c

There is a quite good page about it, including the examples...

(a) If you do not need a list of the string addresses in the FLASH then you do not have to create it. (b) You can access any of the strings as you like

prog_char *strings[] PROGMEM {"zero", "one", "two", "three"};

strcpy_P(msg_buffer, strings[1]);

Hey deSilva, thanks a lot for answering. As I mentioned in a different post, I'm facing almost 2,000 lines of code now and want to be extra careful on what I try. If say 300 lines down the road I hit a problem, I want to say that is from the new 300 lines , not from my misunderstanding on PROGMEM uses.