Anonymní profil Martin – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Martin – Programujte.comAnonymní profil Martin – Programujte.com

 

Příspěvky odeslané z IP adresy 78.102.253.–

Martin
C / C++ › Realloc
10. 11. 2013   #183655

Tak ten kód jsem našel na internetu :) jinak díky akorát bych rád věděl jednoduše nějaká další názorná využití reallocu, nepotřebuji kód ale jen tak teoreticky :) , trošku se v tom ztrácím. Protože zatím, krom něčeho málo mi přijde docela zbytečný ale asi se mýlím.

Martin
C / C++ › Realloc
10. 11. 2013   #183642

Dobrý den,

studuji momentálně alokování dynamické paměti a mám problém pochopit jednu část kódu:

pom = (char *) realloc((void *) v, x * MEGABAJT);

Kdyby byl někdo hodný a přesně mi parametr po parametru vysvětlil tak bych byl rád, prošel jsme hodně stránek a prostě to nějak nemůžu pochopit, jak to celý funguje. Celý kód, kdyby někdo potřeboval pro orientaci zde:

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(void)
{
    const int MEGABAJT = 1024*1024;
    unsigned long x, a;
    char *pom, *v = NULL;

    do
    {
        cout << "Zadejte pocet megabajtu, 0 pro konec: ";
        cin >> x;

        pom = (char *) realloc((void *) v, x * MEGABAJT);

        if ((pom == NULL) && (x))
        {
            cout << "Nedostatek pameti.\n";
        }
        else
        {
             v = pom;
             // vyplneni pameti jednickami.
             //To pocitac trosilinku zamestna :-)
             for (a = 0; a < x * MEGABAJT; a++)
             {
                v[a] = '1';
             }
        }
    } while (x);

    free(pom);
    free(v);

    return 0;
}

Děkuji všem za reakci. Prosím o nějakou jednodušší odpověď.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý