“Conocimientos Programación>Lenguajes De Programación

Razones de desbordamiento de pila

2012/9/12
desbordamiento de pila es un error de aplicación que se produce cuando hay demasiada memoria asignada en el tiempo de ejecución llamada pila de una aplicación. En el sistema operativo , la pila de llamadas es, literalmente, una "pila de la memoria" en el que las variables de programación y llamadas a procedimientos se almacenan para su uso en el ámbito de ejecución actual . Las principales causas de desbordamiento de pila son infinitos recursión y las variables de pila que son demasiado grandes . Una tercera causa , aunque menos probable , puede ocurrir debido a la pérdida del puntero de pila en la memoria . Infinite recursividad

recursividad infinita hace que la pila de llamadas de desbordamiento en la mayoría de los lenguajes de programación . Cuando un procedimiento o una función llama a otra función o procedimiento , la información previa sobre la pila de llamadas se mantiene y la información de la nueva función se asigna en la parte superior de la pila. Cuando una función que se llama a sí misma recursivamente sin un medio claro de la terminación , la aplicación asignará más memoria en la pila de forma continua hasta que se asigna más memoria que la disponible en la pila, lo que resulta en desbordamiento de pila.
Muy grandes variables de pila

variables que se declaran en la pila incluyen variables de entrada en un procedimiento, el valor de retorno para el procedimiento y las variables de miembros utilizados para los cálculos . Esto puede dar lugar a desbordamiento de pila si el tamaño combinado de la llamada de procedimiento y sus variables es mayor que la memoria de pila disponible.
Stack Pointer Pérdida

Stack pérdida de puntero se produce siempre que la memoria en la pila se daña . Esto puede ocurrir al tratar de acceder a las funciones o datos en memoria que previamente se autorizaron , por ejemplo . Si esto sucede, una forma única de recursividad se produce , lo que resulta en la aplicación que está tratando de averiguar la información de la base de un dato concreto . Debido a que la información técnicamente no existe , el comportamiento de la aplicación se convierte en indefinido , y un sinfín de llamadas a funciones se hacen posibles . Esta limitación se produce principalmente sólo en lenguajes de bajo nivel , orientados a objetos , como C + + .

Lenguajes De Programación
Asegure Codificación de Certificación
Cómo convertir una cadena en un entero en Gambas
Cómo hacer un Wireframe Trabajo
Cómo convertir un JDW a un Eclipse
Cómo calcular los minutos totales de los desarrolladores de bases de datos SQL
Cómo Cypher criptografía para ordenadores
Cómo aprender Microsoft FoxPro Online
Cómo utilizar CFC en ColdFusion
Conocimientos Informáticos © http://www.ordenador.online