Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Computer Programmeringsspråk >> Content
    Grunner for Stack Overflow
    Stack overflow er en programfeil som oppstår når for mye minne er tildelt på run-time samtale stabel av et program. I operativsystemet , er denne samtalen stabelen bokstavelig talt en " stabel med minne" på hvilken programmering variabler og prosedyrekall er lagret for bruk i dagens omfang av gjennomføring . De viktigste årsakene til stack overflow er uendelig rekursjon og stable variabler som er for store . En tredje årsak, selv om mindre sannsynlig kan oppstå på grunn av tap av stabelen pekeren i minnet. Infinite Rekursjon

    Infinite rekursjon fører samtalen stack til å renne over i de fleste programmeringsspråk . Når det er nødvendig eller funksjonskall en annen fremgangsmåte eller funksjon , er tidligere informasjon om anropet stabel opprettholdes og informasjonen fra den nye funksjonen fordeles på toppen av stabelen . Når en funksjon som kaller seg rekursivt uten en klar middel til opphør , vil programmet tildele mer minne på stakken kontinuerlig til mer minne er tildelt enn tilgjengelig på stakken , noe som resulterer i stack overflow .
    Very store stack variabler

    variabler som deklareres på stakken inkluderer input variabler inn i en prosedyre , returverdien for inngrepet og eventuelle medlem variabler som brukes for beregninger. Dette kan resultere i stack overflow dersom den kombinerte størrelsen på procedure call og variablene er større enn tilgjengelig stabelen minne.
    Stack Pointer tap

    Stack pekeren tap oppstår når minnet på stakken blir ødelagt . Dette kan skje ved å prøve å få tilgang til funksjoner eller data i minnet som tidligere ble fjernet , for eksempel. Hvis dette skjer , oppstår en unik form av rekursjon , noe som resulterer i anvendelsen prøver å finne ut basen informasjon for et gitt dataelement . Fordi informasjonen teknisk sett ikke finnes, blir virkemåten til programmet udefinert , og en endeløs strøm av funksjonskall blitt mulig. Denne begrensningen skyldes først og fremst bare i lavt nivå , objektorienterte språk, som C + + .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan laste DLL -filer 
    ·Hvordan Stress Test AJAX 
    ·Hvordan bruke funksjoner i QBasic 
    ·Slik konverterer en JDW til en Eclipse 
    ·Hvordan sende en melding funksjon i C 
    ·Slik Sync til Changelist 
    ·Hvordan ikke logge inn XP Med et passord 
    ·Hvordan hente en Attributtverdi Bare i XQuery 
    ·Anvendelse av lineær programmering i Data 
    ·Hva er forskjellen mellom lokale og globale variabler 
      Anbefalte artikler
    ·Hvordan Split en String i C 
    ·Virkningene av buffer overflow og formatstrenger på Pr…
    ·Hvordan få tilgang Cookies & omadressering i PHP 
    ·Hvordan referere til en CSS -fil Fra JSP 
    ·Scala String Funksjoner 
    ·Hvordan skrive en Multi threaded program i MFC 
    ·Hvordan legge til et bilde overlegg Med V3 Maps API 
    ·Hvordan lage en meny Dockable Med Javascript 
    ·Hvordan oppdage International Character Unicode i Java 
    ·Slik konverterer en DB til UTF8 i MySQL 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/