История изменений
Исправление alysnix, (текущая версия) :
не апдейтится предыдущий-то. он указывает на удаленный. и не на надо делать двойной указатель.
*pcur - это двойной указатель на текущий. раз вы сравниваете
(*pcur)->data == key
struct Node* tmp = *pcur;
*pcur = (*pcur)->next;
free(tmp);
тут вы просто удаляете текущий и переставляете текущий на следующий… но у вас не корректирован указатель у предыдущего элемента списка. он все еще показывает на удаленный.
и не мучьте ж. двойной косвенностью. она тупо медленней, за счет лишнего разыменования, чем просто указатель.
чатгпт правильно написал. смотрите у него
Исходная версия alysnix, :
не апдейтится предыдущий-то. он указывает на удаленный. и не на надо делать двойной указатель.
*pcur - это двойной указатель на текущий. раз вы сравниваете
(*pcur)->data == key
struct Node* tmp = *pcur;
*pcur = (*pcur)->next;
free(tmp);
тут вы просто удаляете текущий и переставляете текущий на следующий… но у вас не корректирован указатель у предыдущего элемента списка. он все еще показывает на удаленный.
и не мучьте ж. двойной косвенностью.он тупо медленней, за счет лишнего разыменования, чем одиночный указатель.
чатгпт правильно написал. смотрите у него