IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 12. diel - Dynamická alokácia polí

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Martin Petrovaj
Tvůrce
Avatar
Martin Petrovaj:30.12.2017 11:52

K časti Dynamické pole

// parameter kapacita nemá v článku uvedený dátový typ
int* pridej_prvek(int prvek, int* pole, int &pocet_prvku, int &kapacita)
{
        if (pole == NULL)
        {
                int* vytvoreno = new int[10];
                kapacita = 10;
                vytvoreno[0] = prvek;
                pocet_prvku = 1;
                return vytvoreno;
        }
        // porovnávanie kapacity s pocet_prvku namiesto nedefinovanej premennej vlozeno
        if (kapacita == pocet_prvku)
        {
                int* vytvoreno = new int[kapacita * 2];
                kapacita = kapacita * 2;

                /* nedalo by sa namiesto cyklu použiť memcpy?
                for (int i = 0; i<pocet_prvku; i++)
                        vytvoreno[i] = pole[i];
                */
                memcpy(vytvoreno, pole, sizeof(int)*pocet_prvku);

                delete[] pole;
                vytvoreno[pocet_prvku] = prvek;
                pocet_prvku++;
                return vytvoreno;
        }

        pole[pocet_prvku] = prvek;
        pocet_prvku++;
        return pole;
}
Editované 30.12.2017 11:53
Odpovedať
30.12.2017 11:52
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovedá na Martin Petrovaj
Patrik Valkovič:30.12.2017 16:52

Díky, opraveno. memcpy jsem použít nechtěl, protože s touto funkcí není čtenář seznámen.

Odpovedať
30.12.2017 16:52
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Lukáš Labor:7.2.2019 19:01

Nějak tomu nerozumím, to musím pro dynamickou alokaci vždycky použít funkci mimo main, a pole se dá zvětšit jen jednou? Čekal bych že bude nějaký postup jak se dá pole zvětšit libovolně krát podle potřeby.

 
Odpovedať
7.2.2019 19:01
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!