Tecnología

Inicio

Cómo utilizar punteros void en C

Cómo utilizar punteros void en C


Los punteros son uno de los más poderosos - y más difíciles - características del lenguaje de programación C. Cuando se trabaja con punteros, a menudo es necesario para convertir entre diferentes tipos de punteros. A veces, es posible convertir directamente de un tipo a otro, pero a menudo, especialmente en los programas complejos, puede que le resulte necesaria para almacenar un puntero que se ha convertido de un tipo, pero aún no se ha convertido en otro tipo de puntero. En ese caso, tendrá que utilizar un puntero nulo, lo que representa un puntero sin ningún tipo en absoluto.

Instrucciones

1 Declarar el puntero nulo. Para hacer que una variable global o local, o un campo de una estructura, escribir "vacío

p;" en una línea vacía dentro de la función o estructura asociada, o en el exterior de todas las funciones y estructuras para hacerla global. Para añadir un argumento de un puntero nulo a una función, escribe "vacío p" en la lista de argumentos de la función. En ambos casos, es posible sustituir la letra "p" con cualquier nombre de variable de su elección.

2 Almacenar un valor en la variable de puntero nulo. Si ha realizado una variable local o global, acaba de escribir "p =

(void) x;". Reemplazar "x" con el nombre del puntero mecanografiado desea convertir a un puntero nulo. Si ha cometido un campo de estructura, escribir "= sp (void) x;". Reemplazar "s" con el nombre de la estructura y "x" con el nombre del puntero. Si ha cometido un argumento de la función, llamar a la función de esta manera: "f ((void *) x)". Reemplazar "f" con el nombre de la función y "x" con el nombre del puntero.

3 Para leer el valor del puntero nulo y convertirlo de nuevo en un puntero escrito, escribir "x = (tipo *) p;", donde "x" es el puntero escrito, "p" es el puntero nulo y "Tipo" se el tipo original del puntero que almacenó en "p". Tenga cuidado para obtener el tipo correcto, porque el compilador C se convertirá diligentemente el puntero a cualquier tipo de pedir, si usted es o no correcta. Esto puede conducir a errores sutiles que son difíciles de solucionar.

Consejos y advertencias

  • Si está escribiendo código demás pueden utilizar, puede utilizar punteros void para que puedan almacenar sus propios datos para su posterior recuperación. Por ejemplo, si está escribiendo una biblioteca de base de datos de directorio telefónico, además de almacenar un nombre y número de teléfono para cada persona, almacenar un puntero nulo también. Esto permitirá que el programador que utiliza la biblioteca para almacenar sus propios datos, junto con los suyos.
  • Cada vez que usted está utilizando punteros en C, tener mucho cuidado y hacer el paso a paso las cosas. Los punteros son una de las características más propensos a errores de C, y han sido una de las fuentes más comunes de agujeros de seguridad en el software moderno.