Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Wat is Stack Overflow ?
Een stack overflow is een soort programmering fout die optreedt wanneer een programma probeert meer geheugen op de call stack dan beschikbaar is toe te wijzen . Het is een potentieel ernstige fout dat het gewraakte programma zorgt voor crash en is meestal het gevolg van een van de twee ontwerp fouten . De Stack

stack verwijst naar een gedeelte van het geheugen dat wordt gebruikt om informatie over de functie van een programma op te slaan . De afmetingen en de technische details van de stapel zal variëren afhankelijk van programmeertaal , compiler , het besturingssysteem en het type processor , en deze gegevens worden meestal verborgen voor de programmeur in de meeste hoger niveau talen .
Voorbeeld zijn Stapel

Neem het volgende voorbeeld in pseudocode :

functie
een { 1 . bel functie b.2 . bel functie c . }

functie b { 1
. bel functie c.2 . Print Spot . }

Functie c { 1
. Print Run . }

Omdat elke functie andere functies kunnen noemen , de stack bestaat om bij te houden van waar in de bovenliggende functie voort te zetten nadat een kind functie terugkeert houden . Dit voorbeeld , indien gestopt in de functie c , kan een stack die er ongeveer zo uitziet :

> A1 --- > B1 -------- > C1

Sinds de eerste regel van de functie A oproepen functie B , en de eerste regel van de functie B noemt functie C. Na functie C zal eindigen , zal het programma terug verder in de keten , hardlopen B2 en tenslotte A2 .

Infinite Recursion

een stack overflow treedt op wanneer een programma probeert te veel informatie op te slaan op de stapel . De meest voorkomende oorzaak van een stack overflow is een ontwerpfout genaamd oneindige herhaling . Neem het volgende voorbeeld in pseudocode :

functie
A { 1 . Bel functie A. }

En de resulterende stapel :

- > A1 --- > A1 -------- > A1 ------- ------- > A1 (enzovoort ) op Twitter

Degenen die bekend zijn met het programmeren van computers zal dit herkennen als een variatie op de oneindige lus , behalve , in plaats van altijd lopen , zal dit programma uiteindelijk consumeren het geheugen op de stack , wat resulteert in een crash en een stack overflow fout .
Preventie

stack overflow fouten doen zich meestal bij een poging om recursieve algoritmen te implementeren , en de sleutel de meeste fouten voorkomen is dat het volgende geldt voor alle recursieve implementaties: recursieve functie moet een uitgang voorwaarde dat een andere laag van recursie geen aanmaken bevat , en de recursieve functie moet worden ontworpen dat elke laag van recursie toegevoegd moeten brengen de functie dichter bij de uitgang staat.
grote lokale variabelen

Een andere , veel zeldzamere oorzaak van stack overflow fouten is de verklaring van de grote lokale variabelen , meestal in de vorm van arrays met honderdduizenden of miljoenen , van de elementen . De eenvoudigste manier om stack overflows in deze situatie te voorkomen is om pointers en dynamisch toewijzen van geheugen gebruiken om te voorkomen verklaren de gegevens op de stack wanneer dergelijke geheugen intensieve operaties nodig zijn.

Previous: Next:
  Computer Programming Languages
·Hoe de Cell -ID locatie van he…
·Hoe te converteren naar Matrix…
·Hoe te XHTML leren voor beginn…
·Waarom is Scroll Bar Knippert …
·Hoe maak je een Stroomschema v…
·Hoe maak je een navigatiebalk …
·Lijst van Voordelen van UML 
·Hoe te Integer Overtollige geb…
·Hoe een Outer Join in de AFD i…
  Related Articles
Wat is VBA ? 
Wat zijn de functies van Visual Basic ? 
Wat is een Visual Basic DataGrid ? 
Hoe het verhogen van Stack Grootte in Vi…
Wat is een Array in Visual Basic ? 
Wat is de Visual Basic IDE ? 
Wat is Visual Studio Express ? 
Wat is Visual Basic 6.0 ? 
Wat is OCX in Visual Basic ? 
  Programmering Articles
·Hoe maak je een Local Admin Password Scr…
·Hoe je C gebruiken op een Unix -systeem 
·Hoe de Disable Form knop Inschakelen in …
·Hoe het standaard wijzigen MySQL Gebruik…
·Hoe maak je een MySQL script Run 
·Hoe maak je een formulier om iFrame 
·Hoe kan ik een HTML- verklaring in een C…
·Om te lezen hoe een enkele lijn met komm…
·Hoe om bestanden met een VBS Hernoem 
Copyright © Computer Kennis https://www.nldit.com