-1
Cのリンクリストからノードを削除しようとすると、問題が1つ発生します。 どこが間違っているのか分かりませんが、期待されているものも最後のものもなくなってしまい、私がfree()を実行すると実際には動作しません。それはまだいくつかのデータを保持しています。 誰も助けてくれますか?リンクリストからノードを削除しても正しく動作しない
node=head;
temp=node->next;
if(record == 1){
head=head->next;
printf("\nInside if count %d node %s head %s",count, node->name, head->name);
free(node);
}
else if (record > 1){
while(count < record-1 && count < list_size){
printf("\nInside while count %d node %s head %s",count, node->name, head->name);
node = temp;
temp = temp->next;
node->next = temp->next;
count++;
}
printf("\nOutside while temp %s node %s head %s",temp->name,node->name,head->name);
free(temp);
}
少なくとも、この文の一時=リンパ節転移のようなものになるだろう。意味がなく、未定義の動作につながる可能性があります。 –
関数からのコードスニペットであれば、完全な関数を表示してください。 –
次のステートメントnode-> next = temp-> next; whileループでも意味をなさない。 –