previous next Up Title Contents Index

23.2.3 Dynaamiset muuttujat unohtuu vapauttaa

Dynaamisia muuttujia käytettäessä tulee muistaa, että vaikka niitä on helppo varata, pitää ne muistaa myös vapauttaa. Esimerkiksi seuraava on väärin aliohjelmassa:
	char *ali(...)
	{
	  char *p;
	...
	  p = tee_jono("Kissa!"); 	
	...
	  if ( f == NULL ) return VIRHE; /* !!! poistutaan vapauttamatta p:n tilaa !!! */
	...
	  free(p);
	  return NULL;
	}
Jokaisella aliohjelman kutsukerralla varataan uusi tila merkkijonolle ja mikäli kutsuja tulee riittävästi, muisti loppuu pelkkiin Kissoihin! Tätä voidaan C++:ssa välttää ovelalla hajottimien käytöllä.


previous next Up Title Contents Index