この関数は、リンクされたリストの特定のノードをとり、最後のノードにします。リンクノードのノードを最後のノードにする機能はありますか?
void lastNode(struct list *node)
{
struct list* temp = node->next;
node->next = NULL;
struct list* temp2;
while(temp)
{
temp2 = temp->next;
printf("%p \n",temp);
free(temp);
temp = temp2;
}
}
int main()
{
struct list d={4,NULL};
struct list c={3,&d};
struct list b={2,&c};
struct list a={1,&b};
struct list *node = &a;
lastNode(&b);
while(node)
{
printf("%d \n",node->d);
node=node->next;
}
return 0;
}
が、それはノードを解放してくれエラーを与えています。
どのようなエラー...?それは好きです - "それは働いていない、助けて"または "医者、私の体の一部が痛い、私に普遍的な薬を与える、それはそれを修正する" .. –
@Kiril http://codepad.org/QC8b0uHUセグメンテーションフォルトループ – Furqan
これは別のものです:) –