私は次のものを持っています。
const CHAR string_1[] PROGMEM = "String 1";
const CHAR string_2[] PROGMEM = "String 2";
const CHAR string_3[] PROGMEM = "String 3";
const CHAR string_4[] PROGMEM = "String 4";
const CHAR string_5[] PROGMEM = "String 5";
const CHAR *string_table[] PROGMEM =
{
string_1,
string_2,
string_3,
string_4,
string_5
};
この string_table のアドレスを保存して、関数で呼び出すことができるようにするにはどうすればよいですか。
CHAR acBuffer[20];
UCHAR ucSelectedString = 2; // get string number 3
//
pcStringTable = string_table ...?? What is the proper line here??
//
strcpy_P(acBuffer, (char*)pgm_read_byte(&(pcStringTable[ucSelectedString])))
以下のコメントに基づいて、構造も変更しました。
typedef struct
{
...
CHAR **pasOptions;
次に、それに割り当てようとしstring_table
ました。
stMenuBar.pasOptions = string_table;
コンパイラはこの警告をスローします。
warning: assignment from incompatible pointer type
これ以上の考えはありますか?