• Miércoles 20 de Noviembre de 2024, 14:35

Autor Tema:  Casteos "raros" en C  (Leído 2964 veces)

Leber

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Casteos "raros" en C
« en: Martes 12 de Abril de 2011, 10:40 »
0
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

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Casteos "raros" en C
« Respuesta #1 en: Martes 12 de Abril de 2011, 13:17 »
0
El asterisco de más es para recoger el valor al que apunta el puntero. Esto viene en cualquier libro de C  :P

Leber

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Casteos "raros" en C
« Respuesta #2 en: Martes 12 de Abril de 2011, 13:41 »
0
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  ^_^