Krupski:
If I do this:const char *menu2 PROGMEM =
" (3) %s this channel\r\n\r\n"
" Option: ";
is that string in flash memory?
No. The pointer is in FLASH but the string is copied to SRAM. See the reference: http://www.arduino.cc/en/Reference/PROGMEM
Setting up a table (array) of strings in program memory is slightly complicated, but
here is a good template to follow.Setting up the strings is a two-step process. First define the strings.
#include <avr/pgmspace.h>
prog_char string_0[] PROGMEM = "String 0"; // "String 0" etc are strings to store - change to suit.
prog_char string_1[] PROGMEM = "String 1";
prog_char string_2[] PROGMEM = "String 2";
prog_char string_3[] PROGMEM = "String 3";
prog_char string_4[] PROGMEM = "String 4";
prog_char string_5[] PROGMEM = "String 5";// Then set up a table to refer to your strings.
PROGMEM const char *string_table[] = // change "string_table" name to suit
{
string_0,
string_1,
string_2,
string_3,
string_4,
string_5 };
Of course if you don't need a table of your strings you can skip the second part and reference the strings individually.