3
將返回的整數值強制轉換爲void指針有問題。已嘗試從這個網站的一些選項,但我的問題似乎仍然沒有得到解決。雖然程序編譯時沒有代碼錯誤,但我得到了分段錯誤。我瞎了,在我的代碼中有一些錯誤?將int函數強制轉換爲void *
#include<pthread.h>
#include<stdio.h>
#include<stdint.h>
int ackermann(int a, int b)
{
if(a==0)
return a+1;
else if(a>0 && b==0)
{
return ackermann(a-1, 1);
}
else if(a>0 && b>0)
{
return ackermann(a-1,ackermann(a,(b-1)));
}
}
int main(int argc, char* argv[])
{
int a = atoi(argv[1]);
int b = atoi(argv[2]);
int c = ackermann(a,b);
void *ptr = &c;
pthread_t mythread;
if(pthread_create(&mythread, NULL, ptr, NULL))
{
printf("Could not create a thread\n");
}
pthread_exit(NULL);
return 0;
}
適合我:http://ideone.com/AMD4k0 – CinCout
提示:爲什麼浪費'argc'? –
「pthread_create」的第三個參數是一個指向函數的指針(本例中爲'ackerman'),但是你正在傳遞一個指向'int'的指針。 –