Kako bi rešili problem?
Ideja:
Imamo mladoporočenca, ki trenutno živita v garsonjeri. Ko bosta dobila svojega prvega otroka, se bosta z vso svojo kramo iz garsonjere in z otrokom, preselila v enosobno stanovanje. Ko bosta dobila drugega otroka, se bodo, vsi skupaj in z vso kramo, preselili v dvosobno stanovanje...To je opis kako bomo uporabljali ukaza new in delete.Potem pa otroci zrastejo in odidejo od doma, zato se moz in zena preselita, z vso svojo kramo, postopoma nazaj v garsonjero.
Funkcija Poln vrne true natanko takrat, ko je polna. V popravljeni inačici pa funkcija, ko ugotovi, da je skladišče polno, poskuša dobiti nov prostor s pomočjo ukaza malloc (new). Če ni dovolj velikega pomnilnika, vrneta obe funkciji nič (NULL). V tem primeru bomo sporočili, da je sklad poln.
bool Sklad::Poln() {
if(zadnji < Vel_Skladisce) return false;
// dobi novo skladisce, ki je veliko 2* Vel_Skladisce.
// ce nismo dobiliskladisca, return true.
// sicer preselimo skladisce, sprostimo staro skladisce.
// Vel_Skladisce= 2* Vel_Skladisce, return false.
} // Poln
Podrobno si lahko pogledate na: