[Índice][Previo] [Siguiente]

Puntero a void.

El puntero a void es también un elemento del ANSI-C. A un puntero a void puede asignarse el valor de cualquier puntero de otro tipo. Por ejemplo, en el siguiente programa, al puntero general se le asigna primero la dirección de un entero, y después la de un número real:

#include <iostream.h>

main ()
{
  int *ptInt;
  float *ptFloat;
  int var1 = 7, var2 = 27;
  float x = 1.2345, y = 32.14;
  void *general;

  ptInt = &var1;
  *ptInt += var2;
  cout << " var1 tiene ahora el valor \t" << *ptInt << '\n';
  general = ptInt;

  ptFloat = &x;
  y += 5 * (*ptFloat);
  cout << " y tiene ahora el valor \t" << y << '\n';
  general = ptFloat;

}

La salida de este programa es:

var1 tiene ahora el valor      34
 y tiene ahora el valor         38.3125
Esto permite al programador definir un puntero que puede ser usado para apuntar a variables de tipos diferentes para transferir información a lo largo del programa. Un buen ejemplo es la función malloc(), que devuelve un puntero a void. Este puntero puede ser asignado a un puntero de cualquier tipo, transfiriendo el puntero devuelto al tipo correcto.
Un puntero a void se almacena en memoria de forma que puede ser utilizado con cualquiera de los tipos simples predefinidos en C++, pero también pueden ser utilizados con los tipos compuestos que el usuario define, puesto que los tipos compuestos están formados por tipos simples.

[Índice][Previo] [Siguiente]


Última modificación: 1-4-97

Comentarios, sugerencias, ideas...

© Beatriz Fuentes Arenaz, 1996-1997

Free Web Hosting