|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Orsaker till Stack Overflow

    Stack overflow är en applikation fel som uppstår när för mycket minne allokeras på run-time anropsstack av en ansökan . I operativsystemet , är denna inbjudan stack bokstavligen en " bunt minne " på vilken programmering variabler och samtal förfarande lagras för användning inom den nuvarande ramen för utförandet . De främsta orsakerna till stack overflow är oändlig rekursion och variabler stack som är för stora . En tredje orsak , men mindre troligt, kan uppstå på grund av förlust av stapelvisaren i minnet. Oändlig rekursion

    Oändlig rekursion orsakar anropsstacken att svämma över i de flesta datorspråk . När ett förfarande eller funktion anropar en annan procedur eller funktion , är den tidigare informationen om anropsstacken upprätthålls och informationen från den nya funktionen fördelas på toppen av stacken . När en funktion som anropar sig själv rekursivt utan en tydlig väg för uppsägning , kommer ansökan allokera mer minne på stacken kontinuerligt tills mer minne allokeras än finns på stacken , vilket resulterar i stack overflow .
    Mycket stor stack variabler

    variabler som deklareras på stacken inkluderar ingångsvariabler till ett förfarande , returvärdet för förfarandet och eventuella variabler medlemsländer används för beräkningar . Detta kan leda till stack overflow om den sammanlagda storleken av förfarandet samtalet och dess variabler är större än den tillgängliga stackminne .
    Stackpekaren Förlust

    Stack pekare förlust uppstår när minnet på traven blir skadad . Detta kan ske genom att försöka komma åt funktioner eller data i minnet som tidigare röjda , till exempel . Om detta händer , inträffar en unik form av rekursion , vilket resulterar i ansökan att försöka ta reda på basen information av en viss bit data . Eftersom den information som tekniskt inte existerar, blir applikationens egenskaper odefinierad , och en ändlös ström av funktionsanrop blivit möjligt. Denna begränsning sker främst endast i låg - nivå , objektorienterade språk såsom C + + .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Definition av en Flödesschema
    ·Hur man skriver en XML i ASP.NET Med SqlDataReader
    ·Hur man tar bort xmlns Från en tagg
    ·Vad är NÄRA PASCAL och FAR PASCAL
    ·Hur till Öppen JPG-filer Använda Microsoft Net Framew…
    ·Hur man skapar Drawables Från Resurs -ID i Android
    ·Begränsningar av Fuzzy Logic
    ·Nivåer av abstraktion i Program Design
    ·Handledning i Pascal Programmering Animation
    ·Hur man skapar ett lösenord låda med Simple HTML Prog…
    Utvalda artiklarna
    ·Hur man öppnar en fil i Python
    ·Hur man ladda ner XBRL data till kalkylblad
    ·Hur får man en miljövariabel i Java
    ·Hur Design Spel i Java
    ·Vad gör JavaScript
    ·Hur man använder TreeView Control i WPF
    ·Vad skrivs alltid i en If /Sedan Statement
    ·Hur man ladda ner och lagra media med iPhone SDK
    ·Visual Studio Tools för Microsoft Office System
    ·Hur öppna skärmen buffert i C + +
    Copyright © Dator Kunskap http://www.dator.xyz