Jäsenen lisäyksessä voisimme tehdä myös seuraavasti, eli kasvatettaisiin jäsenistön kokoa 50%, mikäli jäsenistö tulee täyteen (cKerho jaettiin kahteen osaan: cKerho ja cJasenet):
//----------------------------------------------------------------------------
const char *cJasenet::kasvata_kokoa()
/*
** Yritetään allokoida uutta tilaa 50% maksimimäärään nähden lisää.
** Paitsi jos vanha koko on 1, niin kasvatetaan 2:ksi.
** Jos vanha tila on 0, niin tehdään uusi tila.
----------------------------------------------------------------------------*/
{
if ( max_lkm <= 0 ) return luo_taulukko(2);
int uusi_koko = 3*(max_lkm)/2; if ( uusi_koko <= 1 ) uusi_koko=2;
cJasen **uusi_tila = (cJasen **)realloc(alkiot,uusi_koko*sizeof(cJasen *));
if ( uusi_tila == NULL ) return LIIKAA_ALKIOITA;
alkiot = uusi_tila;
max_lkm = uusi_koko;
return NULL;
}
...
if ( jasenia >= max_jasenia ) virhe = kasvata_kokoa();
if ( virhe ) return virhe;