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.
Příspěvky odeslané z IP adresy 78.102.253.–
Martin
Martin
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ěď.