| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Hvad er Stack Overflow
    ? En stak overflow er en type programmering fejl, som opstår, når et program forsøger at allokere mere hukommelse på kaldstakkens end der er tilgængelig . Det er en potentielt alvorlig fejl , der forårsager den fejlende program til at gå ned , og er som regel resultat af en af ​​to design fejl . Stakken

    stak refererer til en del af hukommelsen , der bruges til at gemme oplysninger om funktionerne i et program. De størrelser og tekniske detaljer af stakken vil være varierer afhængigt af programmeringssprog, compiler , operativsystem og processor type , og disse oplysninger er generelt skjult fra programmør i de fleste højere niveau sprog .
    Eksempel stak

    Overvej følgende eksempel i pseudokode : Hej

    funktion a {1 . kalder funktionen b.2 . kalder funktionen c. . }

    funktion b {1 . kalder funktionen C.2. Print Spot. }

    Funktion c {1 . Oplag. }

    Siden hver funktion kan kalde andre funktioner , stakken eksisterer for at holde styr på hvor i moderselskabet funktion til at fortsætte efter et barn funktion returnerer . Dette eksempel, hvis stoppet inde funktionen C, kan have en stak , der ser noget som dette : Hej

    > A1 ---> B1 -------- > C1
    < p > Siden den første linje af funktionen A opkald funktion B , og den første linje af funktion B kalder funktionen C. Efter funktionen C vil slutte , fortsætter programmet tilbage op kæden, der kører B2 og endelig A2.

    Infinite Recursion

    en stak overflow opstår, når et program forsøger at gemme for meget information på stakken . Den mest almindelige årsag til en stak overflow er et design fejl kaldes uendelig rekursion . Overvej følgende eksempel i pseudokode : Hej

    funktion A {1 . kalder funktionen A. }

    Og deraf stack : Hej

    -> A1 ---> A1 -------- > A1 ------- ------- > A1 (og så videre)

    Dem fortrolig med edb-programmering vil genkende dette som en variant af den uendelig løkke , undtagen i stedet køre for evigt , vil dette program i sidste ende forbruge alle hukommelsen på stakken , hvilket resulterer i et styrt og en stak overflow fejl.
    Forebyggelse

    stack overflow fejl opstår generelt , når de forsøger at gennemføre rekursive algoritmer , og nøglen at undgå de fleste fejl er at sikre, at følgende er tilfældet for alle rekursive implementeringer: rekursiv funktion skal indeholde en exit betingelse , som ikke skaber endnu et lag af rekursion og rekursive funktion skal være konstrueret således , at hvert lag af rekursion tilsat skal medbringe funktionen tættere på exit tilstand.
    store lokale variable

    En anden , langt sjældnere årsag stack overflow fejl er erklæringen af store lokale variable , som regel i form af arrays , der indeholder hundreder af tusinder eller millioner , af elementer. Den enkleste måde at undgå stack overflow i denne situation er at bruge pointere og dynamisk hukommelse tildeling for at undgå at erklære data på stakken, når sådanne hukommelse intensive operationer kaldes for.

    Forrige :

    næste :
      Relaterede artikler
    ·Hvad er en kompileret Signatur 
    ·Software Krav til ASP.NET 
    ·Sådan Skil Hex 
    ·T-SQL rette funktioner 
    ·SQL Class Online Training 
    ·Sådan ændres Null-værdier til Spaces Brug AWK 
    ·IDE debugging værktøjer 
    ·Sådan Flet Kolonner i DataGrid 
    ·Variable i en MATLAB Function 
    ·Hvad er forskellen mellem XSL & XSD 
      Anbefalede Artikler
    ·IDL programmering teknikker 
    ·Sådan oprettes JNLP 
    ·Sådan Analyser SAP i Java Logs 
    ·Sådan oprettes en Data Grid i Visual Basic 
    ·Sådan ændres DPI i Java 
    ·Hvordan skal tjekkes for Ctrl -D i C + + 
    ·Sådan konfigureres PHP for en ekstern database Access 
    ·Sådan udskriver i Python uden at ændre linje 
    ·Sådan oprettes en Visual Basic program ved hjælp af H…
    ·Sådan Format Dato Parametre i SQL 
    Copyright © Computer Viden http://www.computerdk.com