Riippuva osoitin

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5.9.2019 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

Roikkuva osoitin tai riippuva viite ( eng.  Danling pointer , wild pointer , dangling reference ) on osoitin , joka ei osoita vastaavantyyppiseen kelvolliseen objektiin. Tämä on erikoistapaus muistin suojausrikkomuksesta.

Roikkuvat osoittimet esiintyvät, kun objekti poistetaan tai siirretään muuttamatta osoittimen arvoa nollaksi, jolloin osoitin osoittaa edelleen muistipaikkaan, johon tiedot on aiemmin tallennettu. Koska järjestelmä voi jakaa uudelleen aiemmin vapautetun muistin (mukaan lukien toiselle prosessille), rikkinäinen osoitin voi johtaa arvaamattomaan ohjelman toimintaan. Kun ohjelma kirjoittaa tietoja muistiin käyttämällä tällaista osoitinta, tiedot voivat vioittua hiljaa, mikä johtaa hienovaraisiin virheisiin, joita on erittäin vaikea löytää.

Tällainen virhe on erittäin vaarallinen, ja muistivuotojen ohella sitä tapahtuu melko usein.

Useat kielet vähentävät roikkuvien osoittimien mahdollisuutta, erityisesti käyttämällä automaattista roskatkeräystä [1] tai muita menetelmiä [2] muistin käytön turvallisuuden parantamiseksi .

Muistiinpanot

  1. Automaattinen viitteiden laskenta iOS | Tohtori Dobbin (linkki ei saatavilla) . Haettu 17. syyskuuta 2016. Arkistoitu alkuperäisestä 16. elokuuta 2012. 
  2. https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html Arkistoitu 30. huhtikuuta 2018 Wayback Machinessa "Rust. Kaikki ydinkieli välittää .. Nolla- tai roikkuvien osoittimien viittauksen poistaminen»

Linkit