Удаление элемента из стека. 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++;
}
}

Подскажите, в чём проблема?


Ответы (0 шт):