将节点添加到双列表

时间:2015-01-23 08:55:24

标签: c list double

我想在列表的末尾添加一个Newnode,但它会崩溃并进入无限循环。 我附加功能: 希望对你有所帮助!!

    void AddProduct(products **head,products *newProduct)
{
    products* current=*head;
    if(current == NULL)
     {
        (*head) =(products *)malloc(1*sizeof(products));
        (*head) = newProduct;
         current=*head;
        return;
     }
    while(current->nextProduct!=NULL)
    {
        current=current->nextProduct;
    }
    //Attaching the new product to the list
    current->nextProduct=newProduct;
    newProduct->prevous=current;
    //SortList(head);
    }

1 个答案:

答案 0 :(得分:0)

创建新元素时,您同时接受它作为参数,自己在函数内部分配它。你用传入的指针覆盖新分配的指针,它没有任何意义。

此外,您未设置新元素的nextProduct字段。

最后,您使用过多的演员表和括号。