gpt4 book ai didi

C++ Arduino 将 char* 传递给 char* 数组

转载 作者:行者123 更新时间:2023-11-28 06:04:49 24 4
gpt4 key购买 nike

我在将 char* 传递到我的 Teensy 上的 char** 数组时遇到问题。

下面是有问题的部分:

for (j = 0; j < rulesamountsingle; j++) {
emptybuffer(buff);
char temp[10];
while(!Serial.available());
len = Serial.available();
for (i = 0; i < len; i++) {
temp[i] = Serial.read();
}
temp[len-1] = 0;
fuzzyRulesSingle[j] = temp;
Serial.print(fuzzyRulesSingle[j]);
Serial.print('\n');
}

如您所见,fuzzyRulesSingle[j](其中 fuzzyRulesSingle 是一个 char**)将由变量 填充>temp(char*)。当我递增 j 时,fuzzyRulesSingle 中的下一个地址将由新的 temp 填充。

但是,当我在上面的代码之外打印我的 fuzzyRulesSingle 时,所有 fuzzyRulesSingle 都将填充 temp 的最后一个值。

我哪里做错了?

最佳答案

您正在将 fuzzyRulesSingle[j] 指向临时字符数组 temp。解决此问题的一个简单方法是将 fuzzyRulesSingle[j] = temp; 更改为 strcpy(fuzzyRulesSingle[j], temp) 并更改 fuzzyRulessSingle 的声明 到所需的大小。

您可以声明 temp 超大循环并使用 malloc 分配必要的内存,然后将其分配给 fuzzyRulesSingle[j]

关于C++ Arduino 将 char* 传递给 char* 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609542/

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