Ejercicio de Puntero a Void

Realizar un programa que tenga como datos iniciales :

  • un tipo de dato entero llamado a con valor = 1
  • un puntero a entero llamado p
  • un puntero a void llamado px
  • un tipo de dato double llamado x con valor = 2.4

Que debe hacer?

  • Debe asignar le p la direccion de a para que apunte a lo mismo y luego mostrar el contenido de p.
  • Debe castear la dirección de x para poder asignárselo al tipo de dato p y luego mostrar el contenido de p.
  • Debe asignar al puntero a void px, la dirección de a.
  • Debe crear un puntero entero llamado pa y luego asignarle px ( casteandolo ) y luego mostrar el contenido de pa.
  • Al puntero a void px debe asignarle la dirección de x y luego crear un puntero pb para asignarle lo que apunta px ( casteándolo ) para finalmente mostrar el contenido de pb.
int main()
{
 int a=1,*p;
 void *px;
 double x=2.4;
 p=&a; //válido: puntero y variable son del mismo tipo
 printf("Output 1 : %d\n", *p);
 //p=&x;  MAL
 p=(int *)&x; //válido
 printf("Output 2:  %d\n", *p);
 
 px=&a;
 int *pa = (int *)px;
 printf("Output 3:  %d\n",*pa);
 px=&x;
 double *pb = (double *)px;
 printf( "Output 4:  %lf\n", *pb);
 return 0;
}