SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Leber en Martes 12 de Abril de 2011, 10:40

Título: Casteos "raros" en C
Publicado por: Leber en Martes 12 de Abril de 2011, 10:40
Hola que tal.

Estaba haciendo algo cuando me tope con la necesidad de hacer un casteo de tipo void* a int. Como no lo tenia muy claro me puse a buscar un poco por internet y me encontré una web bastante maja donde lo explicaban.

En la web había un ejemplo más o menos como este:


Código: C
  1. #include <stdio.h>
  2.  
  3. void func(void *point)
  4. {
  5.     int ret;
  6.  
  7.         ret = *(int *)point;
  8.         printf("%dn", ret );
  9. }
  10.  
  11. int main(void)
  12. {
  13.     int ret_point = 5;
  14.  
  15.     func(&ret_point);
  16.     return 0;
  17. }
  18.  
  19.  

El punto es que no entiendo muy bien esto:
Código: C
  1. ret = *(int *)point;
  2.  


(int *)point <- Esto lo entiendo, hace un casteo a un puntero de tipo int. Pero luego esto *(int *)point ya no lo entiendo.
Alguien me lo podría explicar un poco?

Gracias de antemano
Título: Re: Casteos "raros" en C
Publicado por: m0skit0 en Martes 12 de Abril de 2011, 13:17
El asterisco de más es para recoger el valor al que apunta el puntero. Esto viene en cualquier libro de C  :P
Título: Re: Casteos "raros" en C
Publicado por: Leber en Martes 12 de Abril de 2011, 13:41
Cita de: "m0skit0"
El asterisco de más es para recoger el valor al que apunta el puntero. Esto viene en cualquier libro de C  :P

Si, eso si que lo se, simplemente me lie con el ( tipo *).

saludos  ^_^