gpt4 book ai didi

C - 双字符数组解析 - 要解析的 int 似乎无缘无故地修改了自己

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:38 24 4
gpt4 key购买 nike

我正在尝试检查/显示我按下的是哪个按钮,有人告诉我专门使用双字符数组。

使用下面的代码我得到了这个输出:1 7 8 9 10 11 MuteRec LockPlay 并且 lcd 不会自行刷新以不写入任何内容。

int displayButton(int buttonActivated)
{
int parse = 0;
char buttonNameArray[21][4] = {
{"1 "},{"2 "},{"3 "},{"4 "},
{"5 "},{"6 "},{"7 "},{"8 "},
{"9 "},{"10 "},{"11 "},{"12 "},
{"13 "},{"14 "},{"15 "},{"16 "},
{"Mute"},{"Rec "},{"Lock"},{"Play"},
{" "}
};

for(parse = 0; parse < 3; parse++)
{
DRV_HD44780_putString(16 + parse, 1, &buttonNameArray[buttonActivated][parse]);
}
return(21);
}

void testKeyboardTask()
{
int nbButton = 0;
int buttonActivated = 21;

while(1)
{
DRV_KEYBOARD_readKeyboard();
int buttonId;
for (buttonId=0;buttonId<20;buttonId++)
{
if (buttonStateArray[buttonId] == 1 && nbButton < 20)
{
buttonActivated = buttonId;
nbButton++;
}
}
if(nbButton > 1)
{
DRV_HD44780_putString(0, 3, "Error Multiple Press");
osDelay(1000);
DRV_HD44780_putString(0, 2, " ");
}
else
buttonActivated = displayButton(buttonActivated);

nbButton = 0;
}
}

似乎 buttonActivated 随着时间的推移而变化(给自己加 6)。我不明白为什么我会得到这个输出(我是 c 的新手)并且有一个开关它工作得很好,

如果有人能明白为什么

最佳答案

正如每个人所说,我只是忘记了 NULL 终止符,因为 4 个字符不足以容纳它。

谢谢大家

关于C - 双字符数组解析 - 要解析的 int 似乎无缘无故地修改了自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51038909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com