| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Lenguajes De Programación >> Content
    ¿Qué es el desbordamiento de pila
    ¿Un desbordamiento de pila es un tipo de error de programación que se produce cuando un programa intenta asignar más memoria en la pila de llamadas que está disponible. Es un error potencialmente grave que hace que el programa en cuestión a la caída y es generalmente el resultado de uno de los dos errores de diseño . La Pila

    La pila se refiere a una sección de memoria que se utiliza para almacenar información acerca de las funciones de un programa . Los tamaños y los detalles técnicos de la pila se varían dependiendo del lenguaje de programación , compilador , sistema operativo y tipo de procesador, y estos detalles son generalmente ocultos al programador en la mayoría de los lenguajes de alto nivel .
    Ejemplo Pila

    Considere el siguiente ejemplo de pseudocódigo :
    función

    a { 1 . b.2 función llamar. llamar a la función c . }

    función b { 1 . c.2 función llamar. Imprimir Spot. }
    Función

    c { 1 . Tirada . }

    Dado que cada función puede llamar a otras funciones, existe la pila para realizar un seguimiento de dónde en la función madre para continuar después devuelve la función del niño. En este ejemplo , si se detiene dentro de la función de c , puede tener una pila que se ve algo como esto:

    > A1 ---> B1 -------- > C1
    < p > Desde la primera línea de la función Una función de llamadas B, y la primera línea de la función B llama a la función C. Después de la función C terminará , el programa seguirá una copia de seguridad de la cadena, y, finalmente, ejecutar B2 A2.

    recursividad infinita

    un desbordamiento de pila se produce cuando un programa intenta almacenar demasiada información en la pila. La causa más común de un desbordamiento de pila es un error de diseño se llama recursividad infinita. Consideremos el siguiente ejemplo de pseudocódigo :
    función

    A { 1 . función A. }

    Y la pila resultante llame :

    -> A1 ---> A1 -------- > A1 ------- ------- > A1 (y así sucesivamente )

    Quienes están familiarizados con la programación de computadoras reconocerán esto como una variación en el bucle infinito , con excepción , en lugar de correr para siempre , este programa va a consumir todo el tiempo la memoria en la pila , lo que resulta en un accidente y un error de desbordamiento de pila.
    Prevención

    errores de desbordamiento de pila se produce generalmente cuando se trata de implementar algoritmos recursivos , y la clave para evitar la mayoría de los errores es para asegurar que el siguiente es cierto de todas las implementaciones recursivas : la función recursiva debe contener una condición de salida que no crea otra capa de la recursión , y la función recursiva debe estar diseñado de manera que cada capa de la recursión añadió debe traer la función más cerca de la condición de salida .
    grandes variables locales

    Otra , mucho más rara causa de los errores de desbordamiento de pila es la declaración de las grandes variables locales , por lo general en forma de matrices que contienen cientos de miles o millones de elementos. La forma más sencilla de evitar desbordamientos de pila en esta situación es el uso de punteros y asignación dinámica de memoria para evitar la declaración de los datos en la pila cuando tales operaciones intensivas de memoria se requieren.

    Previous :

    next :
      Artículos relacionados
    ·Cómo configurar Socket bloqueo en Falso 
    ·Cómo cambiar la contraseña SYSMAN 
    ·Cómo utilizar el comando SNMP para obtener una etiquet…
    ·Carácter matriz vs cadenas 
    ·¿Cuáles son caracteres variables numéricas 
    ·Las desventajas de compresión de un sitio web 
    ·Cómo encontrar los registros duplicados en una tabla 
    ·Cómo comprobar si existe un archivo utilizando VBScrip…
    ·Consejos y trucos para Frontpage 2003 
    ·Cómo escribir texto Lines Área individualmente a un a…
      Artículos destacados
    ·¿Cómo puedo añadir Google Analytics a un archivo PHP…
    ·Cómo desactivar el modo seguro de PHP 
    ·Cómo ejecutar comandos de consola de Java 
    ·Cómo resolver un lenguaje Java Stack Overflow error 
    ·Cómo conseguir una caja desplegable en VBA 
    ·¿Qué es la saturación de búfer 
    ·Cómo reemplazar una barra invertida 
    ·Cómo eliminar una cadena vacía en PHP 
    ·Cómo cambiar un factor de relleno 
    ·Cómo actualizar los atributos en Rails 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com