将新节点链接到c中的链接列表的问题

阿德隆

我是C语言的新手,也是编程的新手,我才刚刚开始研究链表。

static struct post {
    char * str;
    struct post * next;
}
head = {0, NULL};


int stringdb_add(const char * str) {
    int pos = 0;
    struct post * new_input = (struct post * ) malloc(sizeof(struct post));
    new_input - > str = (char * ) malloc(strlen(str) + 1);

    if (head.next == NULL) {
        strcpy(new_input - > str, str);
        new_input - > next = NULL;
        head.next = new_input;
    } else {
        while (head.next - > next) {
            ++pos;
            head.next = head.next - > next;
        }
        strcpy(new_input - > str, str);
        new_input - > next = NULL;
        head.next - > next = new_input;
    }

    return pos;
}

函数“ stringdb_add”应该返回新节点已放置的位置,但是当我测试该函数时,只会得到(00111111 ....)。

这可能是因为列表从未正确链接。

尼古拉
while (head.next->next) {
   ++pos;
   head.next = head.next->next;        
}

您正在永久更改head.next,这肯定不是您想要的。您可能想要类似的东西:

struct post *p = &head;
while (p->next->next)
/* ... */

Nitpick:strcpy(new_input->str, str)可以放在之前的单个位置if

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将新节点链接到c中的链接列表的问题

来自分类Dev

单链接列表C中的链接列表返回根节点

来自分类Dev

链接列表-插入中间,链接新节点

来自分类Dev

C ++链接列表中的虚拟节点

来自分类Dev

将新节点插入链接列表时,程序冻结

来自分类Dev

将节点插入链接列表

来自分类Dev

C ++将链接列表存储在链接列表中

来自分类Dev

使用链接删除链接列表中的节点

来自分类Dev

在Java中为单链接列表创建新节点

来自分类Dev

将项目链接到Excel中列表中的类别

来自分类Dev

从链接列表中删除节点

来自分类Dev

在C中未知标题指针位置的情况下,将节点插入单个链接列表中

来自分类Dev

如何将Droplink链接到Sitecore中的树列表

来自分类Dev

将节点添加到c中的双循环链接列表的开头

来自分类Dev

将文本读入C中的链接列表

来自分类Dev

删除链接列表中的节点后,打印节点列表将显示已删除的节点

来自分类Dev

在C中以递归方式从链接列表中删除节点

来自分类Dev

将OpenCV链接到Webots的问题(Ubuntu)

来自分类Dev

将entityframework链接到新的Sql DataType

来自分类Dev

C-如何遍历链接列表中的子节点?

来自分类Dev

气泡排序通过移动链接列表中的节点(C ++)

来自分类Dev

C中带有标题节点的链接列表

来自分类Dev

C中的链接列表

来自分类Dev

C中的链接列表

来自分类Dev

将节点添加到链接列表

来自分类Dev

仅将新数据添加到C中的链接列表

来自分类Dev

节点包链接问题

来自分类Dev

链接到magento中的弹出比较列表

来自分类Dev

在C中实现反向链接列表功能的问题