C 值在添加后从链表中删除

标签 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);
            }
        }

函数调用后,链表中有一堆元素,但它们都是空字符串。知道问题出在哪里吗?

最佳答案

问题是这个声明:

char copy[256];

copy 是一个局部变量,因此不允许存储它以备后用。

替换为

char *copy = new char[256];

解决这个问题。

关于C 值在添加后从链表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35858125/

相关文章:

c - 函数 ceil() 被忽略

c - 不指定参数数量的可变参数函数

C 多线程共享变量

c - %.1f 和 %.01f 有什么区别吗?

c - 从图像 RGB bmp 纯 C 编写灰度 bmp 的这段代码有什么问题 - Windows 操作系统

c - 如何在 gdb 中打印 OpenMP 并行区域的局部变量?

c - 这段 C 代码有什么问题?如果有逻辑错误请提出正确的方法

c++ - 已知数据类型的含义

c - 我是否将非常短的 C 代码正确地翻译成了汇编程序?

C 语言函数调用参数很少,但不报错?