Исключение std::bad_alloc

struct queue {
    int data;
    queue* nextptr;
    void queue_push(int data);
    void queue_lout();
    void queue_pop();
};
queue* tail = nullptr;
queue* head = nullptr;

void queue::queue_push(int data) {
    queue* temp = new queue();
    temp->data = data;
    temp->nextptr = nullptr;
    if (tail == nullptr && head == nullptr) {
        tail = head = temp;
        return;
    }
    head->nextptr = temp;
    head = temp;
}
void queue::queue_lout() {
    queue* temp = tail;
    while (tail) {
        cout << tail->data << " ";
        tail = tail->nextptr;
    }
    cout << endl;
    tail = temp;
}
void queue::queue_pop() {
    queue* temp = tail;
    if (tail == nullptr)return;
    if (tail == head) {
        tail = head = nullptr;
    }
    else {
        tail = tail->nextptr;
    }
    delete temp;
}
void fourth_task() {
    queue* firstqueue=nullptr;
    queue* secondqueue = nullptr;
    queue* tmp = tail;
    while (tmp) {
        if (tmp->data % 2 == 0) {
            secondqueue->queue_push(tmp->data);
        }
        else if (tmp->data % 2 != 0) {
            firstqueue->queue_push(tmp->data);
        }
        tmp = tmp->nextptr;
    }
    firstqueue->queue_lout();
    secondqueue->queue_lout();
}

int main() {
        queue* queue1 = nullptr;
        for (int i = 0; i < 10; i++) {
            queue1->queue_push(i);
        }
        queue1->queue_lout();
        fourth_task();
        return 0;
}

Дана очередь из 10 чисел, нужно создать две очереди и распределить нечетные числа в первую, а четные - во вторую. В функции fourth_task() ловится исключение std::bad_alloc


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