我试图使用pthread
库来计算n
斐波那契数,其中n
可以从范围0-1000
。当我尝试将我的void*
转换为double
时,我遇到了一个奇怪的错误。转换无效*翻番
在这里我主要是我的电话给我的计算斐波那契功能:
pthread_create(&tid, &attr, calc_fib, (void *)n);
在我calc_fib
功能我试图与以强制转换:
void *calc_fib(void *num)
{
double n;
n = (double)num;
...
然而,当我试图做到这一点我收到以下错误:
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
我不能pecast从void*
到double
C或我只是做错了吗?
是的,就是这样。我总是忘记了在不同指针类型之间进行投射的细微之处。 –