簡體   English   中英

C ++ Arduino將char *傳遞給char *數組

[英]C++ Arduino passing char* to an array of char*

我在Teensy上將char*傳遞給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] (其中fuzzyRulesSinglechar** )將由變量tempchar* )填充。 當我增加jfuzzyRulesSingle的下一個地址將由新的temp填充。

但是,當我在上面的代碼之外打印我的fuzzyRulesSingle時,所有fuzzyRulesSingle都將被temp的最后一個值填充。

我哪里出問題了?

您將fuzzyRulesSingle[j]指向臨時char數組temp 解決此問題的一種簡單方法是更改fuzzyRulesSingle[j] = temp; 更改為strcpy(fuzzyRulesSingle[j], temp)並將fuzzzyRulessSingle的聲明更改為所需的大小。

要么

您可以聲明temp超出循環大小,並使用malloc分配必要的內存,然后將其分配給fuzzyRulesSingle[j]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM