私はこのプログラムを実行しようとしたとき、私はこのエラーが供給しています:ポップ機能にリンクされたリストは、glibcが検出された二重解放や破損
* glibcの検出* ./a.out:ダブル無料または破損(fasttop) :0x0000000001926070 ***
私は自分のポップ機能をCで作成しようとしていますが、上記のエラーが出ています。どこが間違っているのか分かりません。
struct node *pop(struct node *top, int *i)
{
struct node *new_node = top;
int count = 0;
if (new_node == NULL) {
return top;
}
while (new_node != NULL && (count < 1)) {
*i = new_node->value;
free(new_node);
new_node = new_node->next;
count++;
}
return new_node;
}
どこでエラーが発生しますか?あなたはデバッガから何を得ますか?あなたは何を見つけようとしましたか? – Olaf
1)発信者側の「トップ」を更新する必要があります。 2) 'free(new_node); new_node = new_node-> next; ':リリース後は使用しないでください。 – BLUEPIXY