Процедура удаления элемента из списка выдает ошибку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Процедура удаления элемента из списка, в первой же строке ошибка "Необработанное исключение по адресу 0x0FFA4280 (msvcr120d.dll) в AtelieKursach.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000000." Помогите пожалуйста. Спасибо
void DeleteFromTurn(Node** Head, char str[255]){
    if (strcmp((*Head)->FIOzakaz, str) == 0){
        Node *Current = *Head;
        Node *Next = (*Head)->Next;
        if (TURN == *Head){
            delete(Current);
            TURN = Next;
        }
        else {
            Node *ptr = TURN;
            while ((ptr)->Next != Current){
                ptr = ptr->Next;
            }
            delete(ptr->Next);
            *ptr->Next = *Next;
        }
    }
    else DeleteFromTurn(&(*Head)->Next, str);
}

Решение задачи: «Процедура удаления элемента из списка выдает ошибку»

textual
Листинг программы
void Delete(Node** Head, const char str[]) {
    if ((Head == NULL) || (*Head == NULL)) {
        return;
    }
 
    if (strcmp((*Head)->FIOzakaz, str) == 0) {
        Node* Node = *Head;
        *Head = (*Head)->Next;
        free(Node); // В вашем случае delete
    }
    else {
        Delete(&(*Head)->Next, str);
    }
}
 
// ...
// Где-то в коде
Delete(&TURN, "ФИО заказ");
// ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5