复制一个数组到另一个
Copy an array to another
我有这两个阵列,我想在每种情况下使用它们在我的 LCD 上打印不同的阵列。
这是一个例子
char *ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
*ChangeSituatuion=MainMenu;
//case 2
*ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);
对于上面的这个例子,我在我的液晶显示器上没有任何意义的字母
如果你想复制指针,而不是创建第二个具有相同内容的数组,我认为这应该可行:
char **ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
ChangeSituatuion=MainMenu;
//case 2
ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);
到这里,数组类型转化为指针类型。请记住,长度为 X 的数组与长度为 Y 的数组具有不同的类型,但在任何情况下,转换为指针都是微不足道的。
编辑:更正错别字。
您遇到了间接层问题。您需要一个指向一个指针数组的指针。您的代码应该是:
char **ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
ChangeSituatuion=MainMenu;
//case 2
ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);
我有这两个阵列,我想在每种情况下使用它们在我的 LCD 上打印不同的阵列。
这是一个例子
char *ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
*ChangeSituatuion=MainMenu;
//case 2
*ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);
对于上面的这个例子,我在我的液晶显示器上没有任何意义的字母
如果你想复制指针,而不是创建第二个具有相同内容的数组,我认为这应该可行:
char **ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
ChangeSituatuion=MainMenu;
//case 2
ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);
到这里,数组类型转化为指针类型。请记住,长度为 X 的数组与长度为 Y 的数组具有不同的类型,但在任何情况下,转换为指针都是微不足道的。
编辑:更正错别字。
您遇到了间接层问题。您需要一个指向一个指针数组的指针。您的代码应该是:
char **ChangeSituatuion;
char *MainMenu[4]={"Category 1","Category 2","Category 3","Category 4"};
char *SubMenu[2]={"Category 3","Category 4"};
//case 1
ChangeSituatuion=MainMenu;
//case 2
ChangeSituatuion=SubMenu;
LCDPutStr(ChangeSituatuion[0],1);