Hid*_*yen -1 c linked-list append singly-linked-list function-definition
此方法应该在链接列表的末尾附加一个节点。该方法循环直到到达末尾,即空指针。但是当我尝试将空指针更改为一个值时,它崩溃了。我应该如何解决这个问题?(节点指针有一个整数数据和另一个当前节点指向的节点变量)。
void appendItem(LinkedList* list, int value)
{
Node* temp = (Node*)malloc(sizeof(Node));
temp = list->head;
while(temp != NULL)
{
temp = temp->next;
}
temp->data = value;
temp->next = NULL;
}
Run Code Online (Sandbox Code Playgroud)
NULL禁止取消引用。
取而代之的是,您应该管理一个指向应该更改的内容的指针。
还要注意,通过分配一些缓冲区malloc()并在之后用另一个值覆盖结果会导致内存泄漏。
还有一点是,malloc()家庭的铸造结果被认为是一种不好的做法。
固定代码:
void appendItem(LinkedList* list, int value)
{
Node** temp = &list->head;
while(*temp != NULL)
{
temp = &(*temp)->next;
}
*temp = malloc(sizeof(Node));
if (*temp != NULL)
{
(*temp)->data = value;
(*temp)->next = NULL;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |