IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: chyba programu

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Imre
Člen
Avatar
Imre:25.3.2017 4:03

Nazdar, potreboval by som pomôcť ako odstrániť túto chybu. Načítavam nejaké údaje z textového súboru triedim ich a dávam do arrayListu. Následne keď na konzole zavolám metodu toString na výpis vyhodí mi túto chybu a odkáže ma na toString():

***Unhandled exception at 0x751B1D4D in Semestralna_pra­ca1.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x00CEE228**.*

Metoda toString():

string Vozidlo::toString()
{

        return  "SPZ: " + getSPZ() + ", nostnost: " + to_string(getNostnost()) + ", opotrebovanie: " + to_string(getOpotrebovanie()) + "\n";
}

Metoda na nacitanie a utriedenie:

void VozovyPark::nacitajAuta()
{
        string SPZ;
        unsigned short int nostnost;
        unsigned short int opotrebovanie;
        unsigned short int den;
        unsigned short int mesiac;
        unsigned short int rok;


        ifstream myfile("vozidla.txt");
        while (!myfile.eof())
        {
                myfile >> SPZ >> nostnost >> opotrebovanie >> den >> mesiac >> rok;

                Datum *dat = new Datum(den, mesiac, rok);
                Vozidlo *auticko = new Vozidlo(SPZ, nostnost, opotrebovanie, *dat);

                array_->add(auticko);
                if (array_->size() > 1)
                {

                for each (Vozidlo* var in *array_)
                {
                        int denAkt = dat->getDen();
                        int denFor = var->getDen();
                        if (denAkt < denFor)
                        {
                                array_->add(auticko);
                                int pom = array_->getIndexOf(auticko);
                                Vozidlo *vzpom = new Vozidlo();
                                vzpom = var;
                                array_->removeAt(pom - 1);
                                array_->insert(auticko, pom - 1);
                                array_->removeAt(pom);
                                array_->insert(vzpom, pom);
                                delete  vzpom;
                        }
                        else
                        {
                                cout << "else" << endl;
                        }

                }
}
        myfile.close();
}
 
Odpovědět
25.3.2017 4:03
Avatar
Odpovídá na Imre
Libor Šimo (libcosenior):25.3.2017 8:56

Precitaj si tento clank:
http://www.itnetwork.cz/…ahodna-cisla
a pri konci najdes svoju odpoved.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
25.3.2017 8:56
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.