Удаление элементов из очереди

231
29 апреля 2018, 21:39

Имеется часть кода:

struct Spis2 {
    int info;
    Spis2 *next, *prev;
};
void Del_5(Spis2 *&begin, Spis2 *&end) {
    Spis2 *temp = begin;
    int counter = 0;
    while (temp != NULL) {
        counter++;
        temp = temp->next;
    }
    temp = begin;
    while (temp != NULL) {
        if (temp->info % 5 == 0 && temp->info % 2 != 0) {
            //If the first
            if (temp->prev == NULL) {
                if (counter == 1) {
                    begin = end = NULL;
                }
                else {
                    temp->next->prev = NULL;
                    begin = temp->next;
                }
                delete temp;
            }
            //if the last
            else if (temp->next == NULL) {
                temp->prev->next = NULL;
                end = temp->prev;
                delete temp;
            }
            //If the middle
            else {
                temp->prev->next = temp->next;
                temp->next->prev = temp->prev;
                delete temp;
            }
        }
        else {
            temp = temp->next;
        }
    }
}

Задача - удаление элементов, оканчивающихся на 5, из двунаправленного списка. Однако при выполнении возникает ошибка:Вызвано исключение: нарушение доступа для чтения.

temp было 0x8123.

И указывает на строку

if (temp->info % 5 == 0 && temp->info % 2 != 0) {

В чем ошибка и как решить?

READ ALSO
Найти k1-количество одинаковых элементов в двумерном массиве c++; [требует правки]

Найти k1-количество одинаковых элементов в двумерном массиве c++; [требует правки]

Найти k1-количество одинаковых элементов в двумерном массиве c++;

194
Почему не работают мои запросы sql в qt

Почему не работают мои запросы sql в qt

Вот обычный код подклк бд, простой запрос

185
Вызов конструктора после объявления

Вызов конструктора после объявления

Вопрос может показатся очень глупым, но все же меня интересует как вызвать конструктор после объявление поляЯ пробовал вот так но у меня...

194
ошибки LNK2001 LNK1120

ошибки LNK2001 LNK1120

Не могу даже попробовать запустить программу, так как появляется следующее сообщение об ошибках:

195