0
在定義常量字符串數組並直接訪問它時,C 中的ARM-GCC上的字符串正確放置在.rodata節中。arm gcc常量字符串數組未放在rodata中
如果我有一個指向位於.data部分的字符串數組的指針並使用ram。如何將myStrings放入只讀部分並保存ram?
const char * myStrings[] = {"String1", "String2"}; //.rodata
const char * myStrings2[] = {"String3", "String4"}; //.data
typdef struct {
const char ** strings;
int a;
} mystruct_t;
const mystruct_t mystruct = {myStrings2,2};
void main()
{
for(uint8_t i=0;i<2;i++)
{
printf("%s",myStrings[i]);
printf("%s",mystruct.strings[i]);
}
}
編輯:提供最小代碼。
它是字符串文字本身還是放置在.data中的指針數組? – Dmitri
這不是有效的C代碼。閱讀[問]並提供[mcve]!請注意,指針不是數組。 – Olaf
...你在'const mystruct_t = {myStrings,2}中缺少一個標識符;' – Dmitri