char * charArray[][6][3] = {
{
{"2"}, //Size of 1st dimension
},
{//Section 1
{"5"}, //Size of each 2nd dimension
{"Option 1", "21", "0"},
{"Option 2", "493", "1"},
{"Option 3", "102", "0"},
{"Option 4", "531", "1"},
{"Option 5", "20", "0"},
},
{//Section 2
{"3"},
{"Something else", "50", "0"},
{"Any text can", "1654", "0"},
{"be in these", "1190", "0"},
},
};
数组的定义如上。它需要动态更改,但我不确定如何定义每个字符数组的最大大小?
读取值完全按照预期工作,但是当尝试更改任何值时,微 Controller 崩溃。
charArray[1][2][3][0] = '0';
我已经尝试了我能想到的一切,但没有任何运气。
任何人都可以帮助我了解正在发生的事情,以及是否有更好的方法来实现这一目标?
最佳答案
当您使用字符串文字定义并初始化指向字符的指针时,如下所示......
char* p = "Hello World";
...您正在常量内存中分配一个字符数组,将其初始化为文字值,然后指向char
指针p
在那个常量内存中。您不得修改它:p[1]='u';
不合法。
如果显式定义数组而不是指针,则可以修改字符。
char p[] = "Hello World";
将其扩展到多维是留给读者的练习。
关于c - 更改多维字符数组的值时“崩溃”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54638788/