私は各スレッドが素数を計算する複数のスレッドを作成しようとしています。私はスレッドの作成を使用して関数に2番目の引数を渡そうとしています。それはエラーを投げつけ続ける。スレッド渡し引数を作成する
void* compute_prime (void* arg, void* arg2)
{
ここでは、スレッドを作成するメイン()です。 & primeArray [i] &の後にmax_primeが私にエラーを与えています。
for(i=0; i< num_threads; i++)
{
primeArray[i]=0;
printf("creating threads: \n");
pthread_create(&primes[i],NULL, compute_prime, &max_prime, &primeArray[i]);
thread_number = i;
//pthread_create(&primes[i],NULL, compPrime, &max_prime);
}
/* join threads */
for(i=0; i< num_threads; i++)
{
pthread_join(primes[i], NULL);
//pthread_join(primes[i], (void*) &prime);
//pthread_join(primes[i],NULL);
//printf("\nThread %d produced: %d primes\n",i, prime);
printf("\nThread %d produced: %d primes\n",i, primeArray[i]);
sleep(1);
}
私が手にエラーがある:
myprime.c: In function âmainâ:
myprime.c:123: warning: passing argument 3 of âpthread_createâ from incompatible pointer type
/usr/include/pthread.h:227: note: expected âvoid * (*)(void *)â but argument is of type âvoid * (*)(void *, void *)â
myprime.c:123: error: too many arguments to function âpthread_createâ
私は2番目の引数を取る場合、それは正常に動作します。
も良いのpthread参照サイトのために[リンク](https://computing.llnl.gov/tutorials/pthreads/#References)チェック、下記答えてご覧ください。 – NickO