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ä.