我有以下幾種;指向字符串的指針數組
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
還有什麼想法?
@ MahmoudAl-Qudsi我不明白。我沒有在結構中聲明它嗎? – mriksman
我錯過了stmenubar是你未命名的結構的事實。 –