“Conocimientos Programación>C /C + + Programming

Las desventajas de punteros en C

2014/9/26
En el lenguaje de programación C , los punteros almacenan información de dirección de posiciones de memoria en el ordenador. También permiten que un programa que permite hacer la computadora para la memoria ( o la memoria " asignar" ) durante la ejecución. Porque punteros ocupan de la memoria dinámica , vienen con ciertos peligros e inconvenientes a pesar de su necesidad. Pérdidas de memoria

Cuando un programa de solicitudes de memoria a través del uso de un puntero , que debe hacer referencia continuamente puntero de la memoria asignada . Si en cualquier momento una ubicación de memoria asignada no tiene un puntero correspondiente ( si todos los punteros referentes a la memoria son " puntas" en otra parte) , que la memoria ya no puede ser visitada por el programa . Esta memoria está " huérfana ". Sin embargo , el equipo aún considera esta memoria asignada . Como programa funciona de forma continua , y las mismas líneas de código se ejecutan millones de veces , un error en la asignación de memoria por un error del puntero pueden llenar rápidamente la memoria disponible con los datos inaccesibles , causando una pérdida de memoria .
punteros nulos

punteros que no se refieren a una dirección en la memoria se llaman punteros " nulos " . Mientras que sirven funciones útiles en la programación ( tales como significando errores de asignación de memoria ) , un problema importante se produce cuando " eliminación de referencias a " un puntero nulo ( eliminación de referencias significa un puntero para acceder a los datos en la ubicación de memoria hace referencia el puntero ) . Cuando se escribe un programa , hay controles de seguridad manejar la eliminación de referencias de un puntero nulo. De hecho , un gran programa sólo podrá eliminar la referencia accidentalmente a un puntero nulo , en algún lugar profundo en millones de líneas de código. Cuando se ejecuta el código, sin embargo, un puntero nulo desreferenciado hará que un programa deje de funcionar.
Buffer Overflow

una saturación de memoria ( o " buffer overflow " ) se produce cuando la memoria asignada por un puntero no es lo suficientemente grande para la entrada que recibe. Por ejemplo , si un programa asigna memoria para una palabra siete caracteres de longitud , y recibe como entrada una palabra de nueve caracteres de longitud , el extra de dos caracteres se almacenan en la memoria fuera de la memoria puntero de siete caracteres . El extra de dos personajes sobrescribir cualquier cosa contenida en el mismo. No hay manera para que el programa de saber lo que existe en las dos posiciones de memoria adicionales . Podrían contener datos sensibles para el programa (por ejemplo, las variables del programa ) , o incluso de la propia computadora . Esto conduce a la "corrupción de datos", ya que los datos que deberían haber sido intacta fuera de la memoria asignada está ahora en peligro.

C /C + + Programming
Cómo cerrar archivos en C
Cómo crear Door En GtkRadiant
Cómo utilizar C + + para escribir un código para calcular factoriales Con Bucles
Cómo utilizar la función strspn en C + +
Cómo voltear un número en Booleanos
Cómo utilizar matrices C en C + +
Cómo calcular una matriz de transposición en C + +
Cómo buscar en una lista enlazada de elementos en C + +
Conocimientos Informáticos © http://www.ordenador.online