我嘗試使用下面的代碼分配指針anathor改變其值
void deleteMatchNode(node **list, int match)
{
node **temp = list;
node **prev = NULL;
while (*temp != NULL)
{
if ((*temp)->member == match)
{
printf ("match found\n");
break;
}
prev = temp;
temp = &(*temp) ->next;
}
printf("gg1 %p %p\n", *temp, *prev);
(*prev)->next = (*temp)-> next;
printf("gg %p %p\n", *temp, *prev);
printList(*list);
//free(*temp);
}
但分配給從鏈表中刪除一個節點(*溫度) - >旁邊(*上一個) - >接下來是改變* temp的值,有人可以指出錯誤。 printList按預期工作,但一旦在* temp上調用free,列表就會被破壞。
請格式化您的代碼。 –
'temp'指向'list',所以它們是等價的。如果你在一箇中做某件事,那麼你在另一件事中做。 –