| 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 >> C /C + + Programming >> Content
    Descripción de un C + + Función y cómo provoca un desbordamiento de búfer
    Desbordamiento de búfer en C + + es causada por algunos problemas diferentes . A menudo , se produce como parte de la operación de una función destinada a escribir en una matriz o acceder a la memoria profunda . Por lo general, se produce desbordamiento de búfer cuando el usuario o el programador introduce datos más allá del alcance de una variable o una matriz. Funciones que intentan ir más allá de este rango también pueden tratar de borrar los datos en el sistema, o redirigir el sistema mediante la eliminación o sobreescritura de la información . Las funciones en C + +

    Funciones en C y C + + se comportan como se espera , en comparación con otros lenguajes de programación . Existen funciones , como cualquier otra variable o sistema de información, en la memoria y se hace referencia a la dirección . Funciones , por sí mismos , son bloques de código en la memoria que se hace referencia . Cualquier error que se produce por una referencia de función puede ser debido a una función no declarada , o una función llamada incorrectamente . Un error de desbordamiento de memoria intermedia sería más probable que vienen con el código dentro de la función .
    Variables y Memoria

    C + + es de tipo estático , lo que significa que el programador debe especificar el tipo de variable al declarar una variable. Esto es debido a que C + + hace a un lado los bloques de memoria de ciertos tamaños basado en el tipo de variable . Una variable de tipo entero (int ) declaró en un programa obtendrá un espacio de memoria reservada específicamente para un int. El bloque de memoria será el tamaño exacto de un número entero .

    Matrices

    matrices son conjuntos de variables contenidas en un solo nombre. Por ejemplo , la matriz a continuación se crea una lista de 10 números enteros , que se puede acceder mediante una referencia a un índice ( nombre [ 0 ] , nombre [ 1 ] , etc )

    int nombre [ 10 ] ;

    en lugar de un número entero , la matriz deja de lado suficiente espacio continuo para 10 . Sin embargo , ya que el acceso de índice de matriz se puede intentar en los valores más allá de lo que está contenido en el array ( nombre [ 11 ] , por ejemplo) , los errores pueden ocurrir si el programador no ver cómo se utiliza la matriz.

    desbordamiento de Buffer

    Debido a la naturaleza de las matrices en C + + , una matriz dentro de una función puede ser víctima de desbordamientos de búfer . Si un usuario introduce una entrada de caracteres más grandes que la matriz puede manejar , los caracteres adicionales se sobreponen a los datos adyacentes a la matriz en la memoria . Por ejemplo ,

    ejemplo void ( ) { int

    sesión [ 15 ] ;

    int i = 0 ;

    while ( cin >> a [i ] ) {

    i + + ; }


    }

    el bucle "while" nunca va a terminar , y por el momento " i" llega a 15 , el usuario comenzará a introducir los datos que sobrescribe la memoria. Esto puede tener consecuencias no deseadas , como la reasignación de una variable local o , en determinadas circunstancias, la reescritura de punteros de función para hacer referencia diferente , el código malicioso .

    Previous :

    next :
      Artículos relacionados
    ·Cómo hacer un gráfico en movimiento en C # 
    ·Función de llamada de objetos C + + Sintaxis 
    ·Cómo encontrar a un máximo en la matriz en C 
    ·Cómo leer un archivo XLS con un programa de C 
    ·Cómo leer el número de bytes en la Asamblea del archi…
    ·Cómo mostrar porcentajes en C + + 
    ·Ocultando C + + Símbolos en biblioteca estática 
    ·Cómo utilizar la función strcat en C + + 
    ·Cómo crear mapas de mensajes de MFC 
    ·Cómo quitar el exponente de un flotador en C + + 
      Artículos destacados
    ·Oracle SQL Tutorial 
    ·ServerSocket Uso del chat en Java 
    ·¿Puedo poner varias anclas de HTML 
    ·Cómo agregar VBScript para Excel 
    ·Un tutorial sobre Restauración de la matriz en PHP 
    ·Cómo moldeada Char internacional 
    ·Cómo analizar un archivo CSV con VB 
    ·Cómo agregar un DLL en Visual C 
    ·Cómo utilizar Cron PHP 
    ·Cómo Java Ayudas Reutilización Software 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com