Nieaktualny błąd wskaźnika
Nieaktualny błąd wskaźnika , znany również jako błąd aliasingu , to klasa subtelnych błędów programistycznych, które mogą wystąpić w kodzie realizującym dynamiczną alokację pamięci , zwłaszcza za pośrednictwem funkcji malloc lub jej odpowiednika.
Jeśli kilka wskaźników adresuje (są „ aliasami dla”) danego fragmentu pamięci, może się zdarzyć, że pamięć zostanie zwolniona lub ponownie przydzielona (a tym samym przeniesiona) przez jeden alias, a następnie odwołuje się do innego, co może prowadzić do subtelnych (i być może przerywanych) ) błędy w zależności od stanu i historii alokacji areny malloc. Tego błędu można uniknąć, nigdy nie tworząc aliasów dla przydzielonej pamięci, kontrolując dynamiczny zakres odniesień do pamięci, tak aby żadne nie mogło pozostać po zwolnieniu, lub używając modułu wyrzucania elementów bezużytecznych , w postaci inteligentnej biblioteki alokacji pamięci lub zapewnianej przez języki wyższego poziomu , takie jak Lisp .
Termin „błąd aliasingu” jest obecnie kojarzony z programowaniem w C , ale był już używany w bardzo podobnym znaczeniu w społecznościach języków programowania ALGOL 60 i Fortran w latach sześćdziesiątych.
Zobacz też