我想了解我的链表中的元素是如何出现的,但是在向其中添加字符串后它们都是空字符串。当我设置终止字符串字符时似乎存在一些问题,但我相信我正在制作它的副本并将副本添加到链接列表中。这是我的代码。
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);
}
}
函数调用后,链表中有一堆元素,但它们都是空字符串。知道问题出在哪里吗?
最佳答案
问题是这个声明:
char copy[256];
copy
是一个局部变量,因此不允许存储它以备后用。
替换为
char *copy = new char[256];
解决这个问题。
关于C 值在添加后从链表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35858125/