Удаление элемента из стека. Cи
При попытке вызвать следующую функцию возникает ошибка:
Вызвано исключение: нарушение доступа для чтения. buff было nullptr.
Код функции:
void del(stack** s, int n) {
stack* ptr, * buff;
ptr = *s;
buff = (*s)->next;
int i = 1;
while (1) {
if (n == 0) {
(*s) = (*s)->next;
free(ptr->name);
free(ptr);
return;
}
else if (n == i) {
(ptr)->next = buff->next;
free(buff->name);
free(buff);
return;
}
if (!buff->next) {
return;
}
ptr = ptr->next;
buff = (buff)->next;
i++;
}
}
Подскажите, в чём проблема?