我正在处理char数组和指向数组的指针。
char firstAr[10] = "First";
char secondAr[10] = "Second";
char thirdAr[10] = "Third";
char* arPtrOne = firstAr;
char* arPtrTwo = secondAr;
char* arPtrThree = thirdAr;
我还有第二组char数组
char fourthAr[10] = "Fourth";
char fifthAr[10] = "Fifth";
char sixthAr[10] = "Sixth";
上面的char数组和char指针不能改变(我必须使用它们)。我需要更改指针指向的char数组,以便它们现在指向第二组char数组。我知道我可以通过以下方式做到这一点,
arPtrOne = fourthAr;
arPtrTwo = fifthAr;
arPtrThree = sixthAr;
这对我上面的例子来说很好,但如果我有100个数组,我需要100个语句将它们全部指向新的char数组。我希望有人可以帮助我找到一个更有效的方法,为我上面的例子做这个。
要停止任何重复工作,并帮助有相同问题的其他人发现所有相关信息,这也发布在https://forum.arduino.cc/index.php?topic=529860.0
答案 0 :(得分:0)
如何使用char**
?
char* l_arry[100];
你可以:
l_arry[0] = //your first string;
l_arry[1] = //your second string;
l_arry[2] = //your third string;
答案 1 :(得分:0)
由于我无法弄清楚如何将现有指针指向循环内的新char,我决定使用新的char数组内容填充原始数组。为此,我在数组char指针中创建了所有新的char数组,以便我可以在for循环中引用它们。然后我创建了一个新的char *数组,并将它们指向原始数组。然后我在for循环中使用strcpy将新数组的内容复制到原始数组。这意味着原始指针保持不变并仍然指向原始数组,但现在数组已更新内容。这与将指针指向新的c数组而不必实际执行此操作具有相同的效果。
char firstAr[10] = "First";
char secondAr[10] = "Second";
char thirdAr[10] = "Third";
char* arPtrOne = firstAr;
char* arPtrTwo = secondAr;
char* arPtrThree = thirdAr;
char *newStrings[3][10]=
{
"Fourth",
"Fifth",
"Sixth"
};
char *newPtrs[3]=
{
firstAr,
secondAr,
thirdAr
};
for(int i = 0; i<3;i++)
{
strcpy (newPtrs[i], newStrings[i]);
}