/ / c ++ netesnosť pamäte a odpadová pamäť - c ++, správa pamäte, úniky pamäte

C + + únik pamäte a odpadkovú pamäť - c ++, správa pamäte, úniky pamäte

Vidím to, ak dynamicky pridelíme pamäťv c ++, ale nerobia to správne, môžeme mať odpadkovú pamäť a môžeme v podstate stratiť pamäť a je jasné, prečo sa to stane. Pretože napríklad ak máme ukazovateľ, ktorý ukazuje na adresu pamäte a priradíme tento ukazovateľ inému adresovému priestoru pred uvoľnením aktuálnej adresy, je to problém. Ale to, čo nerozumiem, je to, že povedzme, že máme zlý program, ktorý stále pridáva pamäť na odpadky, ale ako sa všetko vráti do normálu, keď program ukončíme. Ak napríklad máme odpadovú pamäť, ktorá bola zavedená programom c ++, tak už nie je ukazovateľ, ktorý by ukazoval na túto pamäť odpadu a ako sa po ukončení programu uvoľní všetka odpadová pamäť? Ako program vie, ako čistiť odpadovú pamäť pred ukončením programu?

odpovede:

3 pre odpoveď č. 1

Neexistuje žiadna pamäť, nie je váš programktorý alokuje a uvoľňuje pamäť. Jej základnou osou. Pracujete na vrchole os, pomocou svojich služieb. Pamäť haldy a bezplatný obchod je len abstrakciou, ktorú poskytujú tieto služby (okrem iných abstrakcií takýchto súborov je "jediný proces, ktorý beží v tomto jedinečnom procesore" atď.),


1 pre odpoveď č. 2

V operačnom systéme Windows operačný systém vyčistí akúkoľvek pamäť, ktorú proces pridelil. Takže to v podstate odhodí priestor, ktorý bol daný procesu bez starostlivosti o to, čo obsahuje.