我很难弄清楚如何将元素添加到链表节点内的列表属性中,尤其是如何设置指针。
我有一个这样的结构:
typedef struct Node
{
int value;
struct Node *elements;
struct Node *next;
}Node;
Node *mainlist;
Node *elemlist;
我希望能够在主列表中找到一个特定的节点,并将 elemlist 中的所有元素添加到该节点 *elements 中。
我有这个函数,它接受主列表和一个要检查的值:
void add_elements(Node *mainlist, int value)
{
Node *ptr = mainlist;
Node *ptr2 = elemlist;
while(ptr != NULL)
{
if(value == ptr->value)
{
while(ptr2 != NULL)
{
Node *newNode = malloc(sizeof(Node));
newNode->value = ptr2->value;
newNode->next = ptr->elements;
ptr->elements = newNode;
ptr2 = ptr2->next;
}
}
ptr = ptr->next;
}
}
我遇到了分段错误,因此它显然没有将 elemlist 中的元素添加到节点的元素中。我相当肯定我的指针做错了什么。
对此的任何帮助将不胜感激。谢谢!