[c++] stos - przekroczenie limitu pamięci

0

witam, mam taki programik:

#include <iostream>
#include <stack>
 
using namespace std;
 
int main()
{
    int a;
    stack<int>stos;
    
    cin >> a;
    stos.push(a);
    do{
    cin >> a;
    
    
    
    while(a<stos.top())
    {
                       cout<<stos.top();
                       stos.pop();
 
                       }
                       stos.push(a);
                       
    }
    
    while(a!=12);

}

i problem jest taki, ze jak wrzucam na ideona, to pokazuje mi się przekroczony limit pamięci i komunikat "terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc"

program teoretycznie ma wrzucac do stosu liczby, a jak liczba jest mniejsza od tej, co jest na stosie, to ją wywala aż napotka taką, która będzie mniejsza i wtedy wstawia tą wpisaną. Jak coś pętla do while z a!=12 jest tylko tak tymczasowo.

0

A co ideone miałby zrobić z twoim cin>> ?
Zapewne go olewa albo wysyła mu randomową liczbę i pętla zaczyna wariować.

0

olewać cinu nie olewa, bo daje jakies tam przykladowe wejście no i wyjście się zgadza jak najbardziej. Chyba, że można ten błąd/ostrzeżenie olać:P

1 użytkowników online, w tym zalogowanych: 0, gości: 1