Wednesday, May 18, 2011

2.5 - Dinamikus helyfoglalas

A dinamikus helyfoglalas futas kozben tortenik a memoria heap (halom) szegmenseben.
A valtozok kezelese ebben az esetben a programozo felelossege, a helyfoglalast a new , new[] operatorok vegzik mig a felszabaditast a delete, delete[] operatorok.

Pl:
int *a = new int; // helyfoglalas egyetlen egesz szamnak
*a = 10;
delete a; // felszabaditas

int *t = new int[10] // helyfoglalas egy 10 elemu egesz szamokbol allo tombnek
for(int i=0; i<10; i++)
   t[i]=10;
delete [] t; //felszabaditas

Van egy Datum osztalyunk, keszitsunk belole peldanyokat.
Datum *d = new Datum();
delete d;

// ebben az esetben kotelezo hogy letezen a Datum osztalyunknak
// parameter nelkuli konstruktora
Datum *td = new Datum[10];
delete [] td;

// a masodik megoldas letrehozni egy mutato tombot
// es abban egyenkent inicializalni az elemeket
int i;
Datum **d = new Datum *[10];
for(i=0; i<10; i++)
   d[i] = new Datum(2005,10,i+1);

for(i=0; i<10; i++)
   delete d[i];

delete [] d;

No comments:

Post a Comment