c - 附加到链表 C

标签 c linked-list

我想将新值追加到链表尾部,但由于某种原因,这些值似乎没有被追加。对于新的链表分配:

struct checkPoints *checkPt = *checkPoint;

while (checkPt != NULL) {
    checkPt = checkPt->next;
}
if (checkPt == NULL) {
    checkPt = malloc(sizeof (struct checkPoints));
    scanf("%c %d %d %d %d\n", &checkPt->dropOut, &checkPt->currentPoint, &checkPt->competitor, &checkPt->hour, &checkPt->minute);
}

想法?

最佳答案

您没有将新项目添加到列表中(并且在分配新项目时也忘记了列表的末尾)。尝试

struct checkPoints *tail = *checkPoint;

struct checkPoints *newItem = malloc(sizeof (struct checkPoints));
scanf("%c %d %d %d %d\n", &checkPt->dropOut, &checkPt->currentPoint,
                          &checkPt->competitor, &checkPt->hour,
                          &checkPt->minute);
newItem->next = NULL;

if (tail == NULL) {
    *checkPoint = newItem
}
else {
    while (tail->next != NULL) {
        tail = tail->next;
    }
    tail->next = newItem;
}

关于c - 附加到链表 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877478/

相关文章:

c - 对单向链表进行排序 - 我不明白

c - 我应该如何使用链接列表创建地址簿?

c++ - 链表头双指针传递

c - 汇编循环遍历字符串来计算字符数

C 下标值不是数组、指针或 vector - 是吗?

c++ - 引用指针不适用于 C++ 中的头文件

c - fopen() 接受的参数格式是什么

c - 如何使用插入排序正确对数组进行排序?

java - k 反转链表

c++ - 有没有一种智能的方法可以在编译时知道要链接到的库的名称? (Linux/库本图)