Ich versuche, die pthread
Bibliothek zu verwenden, um n
Fibonacci-Nummern zu berechnen, wobei n
aus dem Bereich 0-1000
stammen können. Ich renne in einen seltsamen Fehler, wenn ich versuche, meine void*
zu einem double
typecast.Convert void * zu double
In meinem Haupt hier ist mein Aufruf an meine berechnen Fibonacci-Funktion:
pthread_create(&tid, &attr, calc_fib, (void *)n);
In meiner calc_fib
Funktion, die ich mit typisieren bin versucht:
void *calc_fib(void *num)
{
double n;
n = (double)num;
...
Allerdings, wenn ich dies zu tun versuchen, Ich bekomme folgende Fehler:
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
Bin ich nicht in der Lage zu ty paste von void*
zu double
in C oder mache ich es gerade falsch?
Ja, das war es genau. Ich vergesse immer die Feinheiten des Gießens zwischen verschiedenen Zeigertypen. –