next up previous
Next: About this document Up: DEBUG Previous: new in delete

Spremenljiva velikost skladišča

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

Potem pa otroci zrastejo in odidejo od doma, zato se moz in zena preselita, z vso svojo kramo, postopoma nazaj v garsonjero.

To je opis kako bomo uporabljali ukaza new in delete.

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:

displaymath135



Andrej Brodnik (Andy)
Tue Mar 31 12:55:17 MET DST 1998