Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Dôvody pre Stack Overflow

pretečeniu zásobníka je chyba aplikácie , ktorá nastane vždy , keď je príliš veľa pamäte pridelené na run - time zásobníka volaní žiadosti . V operačnom systéme , tento zásobník volaní je doslova " stack pamäti " , na ktorom sú uložené programové premenné a volanie procedúr pre použitie v rámci aktuálneho rozsahu výkonu . Primárnej príčiny pretečeniu zásobníka sú nekonečné rekurzia a zásobník premenné , ktoré sú príliš veľké . Tretí dôvod , aj keď je menej pravdepodobné , že môže dôjsť v dôsledku straty zásobníka ukazovateľ v pamäti . Nekonečnú rekurziu

nekonečnú rekurziu spôsobí , že zásobník volaní pretečeniu vo väčšine programovacích jazykov . Ak procedúra alebo funkcia volá inú procedúru alebo funkciu , predchádzajúce informácie o zásobníku volaní je udržiavaná a informácie z nových funkcií je pridelená na vrchole zásobníka . Keď funkcia , ktorá volá sama seba rekurzívne bez jasného prostriedkov ukončení aplikácie bude alokovať viac pamäte na zásobníku nepretržite , kým je pridelených viac pamäte , než k dispozícii na zásobníku , čo vedie k pretečeniu zásobníka .
Veľmi veľký zásobník premenné

premenné , ktoré sú deklarované na zásobníku sú vstupné premenné do procesu , vrátená hodnota pre riadenie a všetky členské premenné použité pre výpočty . To môže viesť k pretečeniu zásobníka v prípade , že celková veľkosť hovoru riadenie a jeho premenných je väčší ako dostupné zásobníka pamäti .
Stack Pointer Strata

Stack strata ukazovateľ dôjde vždy , keď dôjde pamäť na zásobníku poškodený . Táto situácia môže nastať , že sa snaží , aby prístup k funkciám alebo dáta v pamäti , ktoré predtým boli pre príklad . Ak sa tak stane , jedinečná forma rekurzia nastáva , čo má za následok uplatnenie sa snažia zistiť základné informácie o danom kuse dát . Vzhľadom k tomu , informácie technicky neexistuje , správanie aplikácie sa stáva undefined , a nekonečný prúd volanie funkcie sa stávajú možnými . Toto obmedzenie sa vyskytuje prevažne len v low - level , objektovo orientovaných jazykov , ako je C + + .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené