私は以下を持っています。文字列へのポインタの配列
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
};
文字列テーブルのこのアドレスを保存すると、関数内で呼び出すことができます。
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
これ以上考えませんか?
MahmoudAl-Qudsi @私は従っていません:あなたは、その後、他の1次元配列としてアクセスすることができます
。私は構造体でそれを宣言していませんか? – mriksman
私はstmenubarが無名の構造体であるという事実を忘れてしまった。 –