2016-03-08 73 views
1

我想了解如何在我的链接列表中添加元素,但添加字符串后它们都是空字符串。似乎有一些问题,当我设置终止字符串字符,但我相信我正在复制它,并将副本添加到链接列表。这是我的代码。C值在添加后从链接列表中移除

 char name[256] = " "; 
     while (serial.available()) { 
      char text= serial.read(); 
      Print(text); 
      if (text== '\n') { 
       char copy[256]; 
       strcpy(copy, name); 
       add(copy, list); //adds copy to a linkedlist named list 
       name[0] = '\0'; 
      } else { 
       append(name, text); 
      } 
     } 

函数调用后,链表中有一堆元素,但它们都是空字符串。任何想法可能是什么问题?

+0

也许显示一些实际编译的代码?首先制作'char text',然后直接使用'txt'。这是故意的吗?另外,你在栈上分配'copy',这个''if'块之外不会存在。 – Qix

+0

尽管相当C-ISH,你的代码是C++。这些是不同的语言。已编辑标签。 –

+0

它适用于C而不是C++。 – yetanotherposter

回答

1

问题是这样的声明:

char copy[256]; 

copy是一个局部变量,所以将其存储供以后使用是不允许的。

char *copy = new char[256]; 

得到这个问题固定的更换。