Estoy intentando usar la biblioteca pthread
para calcular n
números de fibonacci donde n
puede ser del rango 0-1000
. Estoy corriendo a un extraño error cuando trato de encasillar mi void*
en un double
.Convertir void * a double
En mi principal aquí es mi llamada a mi función de cálculo de Fibonacci:
pthread_create(&tid, &attr, calc_fib, (void *)n);
En mi función calc_fib
Estoy intentando encasillado con:
void *calc_fib(void *num)
{
double n;
n = (double)num;
...
Sin embargo, cuando intento hacer esto Obtengo los siguientes errores:
In function ‘calc_fib’:
error: pointer value used where a floating point value was expected
In function ‘main’:
error: cannot convert to a pointer type
No puedo ty pecast de void*
a double
en C o simplemente lo estoy haciendo mal?
Sí, eso fue exactamente. Siempre me olvido de las sutilezas del lanzamiento entre diferentes tipos de punteros. –