Ero sivun ”Muistivuoto” versioiden välillä
[katsottu versio] | [katsottu versio] |
Poistettu sisältö Lisätty sisältö
→Yksinkertainen C-kielinen esimerkki: char on yhden tavun kokoinen, niin se että kerrotaan yhdellä tavulla 50 on turhaa |
lähteetön |
||
Rivi 1:
{{Lähteetön}}
'''Muistivuoto''' on tyypillinen [[ohjelmointivirhe]], jossa [[tietokoneohjelma]] ei vapauta varaamaansa [[dynaaminen muistinvaraus|muistia]] kun sitä ei enää tarvita. Kun muistivuotoa sisältävää ohjelman osaa suoritetaan riittävän monta kertaa, voi vapaa muisti loppua, mikä aiheuttaa ohjelmiston kaatumisen. Joissakin ohjelmointikielissä, kuten [[Java]]ssa, on automaattinen roskienkerääjä, joka pyrkii vapauttamaan ohjelmiston varaamia resursseja ohjelman uusiokäyttöön. Tällaista automaattista roskienkerääjää ei ole kuitenkaan esimerkiksi [[C (ohjelmointikieli)|C]]:ssä ja [[C++]]:ssa. Se voidaan toteuttaa olemassa olevilla kirjastoilla tai toteuttaa itse ohjelman päättyessä kirjoittamalla kaikkien muuttujien päälle nollia. Muistin yli- ja alivuototilanteet on myös hyvä ottaa huomioon.
|