Indicatorul agățat

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 5 septembrie 2019; verificările necesită 3 modificări .

Un indicator atârnând sau o referință suspendată ( eng.  Pointer atârnând , indicator sălbatic , referință suspendată ) este un indicator care nu indică un obiect valid de tipul corespunzător. Acesta este un caz special de încălcare a securității memoriei.

Pointerii suspendați apar atunci când un obiect este șters sau mutat fără a schimba valoarea indicatorului la nul, astfel încât pointerul să indice în continuare locația de memorie în care datele au fost stocate anterior. Deoarece sistemul poate realoca memoria eliberată anterior (inclusiv către un alt proces), un indicator rupt poate duce la un comportament imprevizibil al programului. Când un program scrie date în memorie folosind un astfel de indicator, datele pot fi corupte în tăcere, ceea ce duce la erori subtile care sunt foarte greu de găsit.

Acest tip de eroare este foarte periculoasă și, împreună cu scurgerile de memorie, se întâmplă destul de des.

O serie de limbi reduc șansa de a agăța pointerii, în special prin utilizarea colectării automate a gunoiului [1] sau a altor metode [2] pentru a îmbunătăți securitatea accesului la memorie .

Note

  1. Numărarea automată a referințelor pe iOS | Dr Dobb (link indisponibil) . Preluat la 17 septembrie 2016. Arhivat din original la 16 august 2012. 
  2. https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html Arhivat 30 aprilie 2018 la Wayback Machine „Rugina. Toată limbajul de bază îi pasă de .. Dereferencing pointers nul sau dangling»

Link -uri