Next: Porovnávání ukazatelů, které ukazují
Up: Ukazatele
Previous: Program neuvolňuje dynamicky alokovaná
  Obsah
Pokud se nějakým způsobem do proměnné typu ukazatel dostane odkaz do
nealokované paměti, je zle. Pokud program do těchto míst něco zapíše může to
vést na některých systémech (DOS) až k pádu celého systému. Podle zákonů
schválnosti totiž vždy přepíšete tu oblast paměti, kde je nahrán operační
systém. Toto se týká reálného režimu. V protected módu program spolehlivě skončí
s runtime error.
Je dobré důsledně nastavovat ukazatele na nil po každém volání
dispose. Pak máte možnost jednoduchým porovnáním zjistit, zda ukazatel na něco
ukazuje nebo ne. Toto testování je zvláště potřebné na začátku každého
podprogramu, který má jako parametr ukazatel. Nikdy si totiž nemůžete být
jisti, že takový podprogram budete volat jenom se správnou hodnotou ukazatele.
Často se může stát například toto:
...
list := nil; {nebo ještě hůře: dispose(list) bez nastavení na nil}
...
ListRelease(list);{list je nil}
...
David Martinek
2002-10-01