previous next Up Title Contents Index

16. Dynaaminen muistinkäyttö


Mitä tässä luvussa käsitellään?

* Dynaaminen muistinhallinta

* Dynaamiset taulukot

* Hajottaja (destructor)

Syntaksi:

	Dyn.muut.luonti C:    pMuuttuja = malloc(koko);
	                      pTaulukko = malloc(alkioiden_lkm * alkion_koko); // ei alus
	                      pTaulukko = calloc(alkioiden_lkm,alkion_koko); // alust. 0
	                C++:  pOlio = new cLuokka;         // oletusmuodostaja
	                      pOlio = new cLuokka(muodostajan_param_lista);
	                      pOlioTaul = new cLuokka[alkioiden_lkm];
	Koon vaihto     C:    pTaulukko = realloc(pVanha,uusi_koko_tavuina);
	Hävittäminen    C:    free(pMuuttuja);
	                      free(pTaulukko);
	                C++:  delete pOlio;
	                      delete [] pTaulukko;
	
	Hajottaja             ~cLuokka();    

Yhdessä käytettävät funktiot tai operaattorit:

	C:   malloc - calloc - realloc - free
	C++: new - delete
	     new [] - delete []

Olemme oppineet varaamaan muuttujia esittelyn yhteydessä. Muuttujia voidaan luoda (= varata muistitilaa) myös ohjelman ajon aikana. Tämä on tarpeellista erityisesti silloin, kun ohjelman kirjoittamisen aikana ei tiedetä muuttujien määrää tai ehkei jopa edes kokoa (taulukot).


previous next Up Title Contents Index