我很难弄清楚如何将元素添加到链表中的节点中的列表属性,特别是如何设置指针。C - 添加到列表节点内的链接列表
我有一个结构,像这样:
typedef struct Node
{
int value;
struct Node *elements;
struct Node *next;
}Node;
Node *mainlist;
Node *elemlist;
而且我希望能够找到mainlist特定节点,并从elemlist的所有元素添加到该节点*元素。
我有这个功能,这需要在mainlist和值检查:
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元素到节点的元素。我很确定我的指针做错了什么。
任何帮助,这将不胜感激。谢谢!
这是实际的代码为'节点 - >值= ptr2->值; '不会编译。 – hmjd
似乎有不一致的使用'节点'与'SymTblNode' - 我怀疑这是实际的代码,这使得诊断问题变得困难/不可能。如果OP学会了使用调试器来解决这些微不足道的问题,它也可以更快更简单。 –
如果你通过你的编译器运行它,应该有几个警告和错误。先解决这些问题,然后再问。 –