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ěď.