-2
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>
void* func(void*);
int main()
{
int numb = 0;
pthread_t pid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&pid, &attr, func, (void*)&numb);
printf("%s%d\n", "Number: ", numb);
return 0;
}
//..............defintation...............
void* func(void* data)
{
int* numb = (int*)data;
*numb = 1000;
}
参照することによって関数 "func"に数値を渡したいと思います。私は番号のアドレスを渡すことによってそうした "(void *)&麻痺"。関数の値を1000に変更し、mainに値を出力しましたが、出力は1000ではなく0になります。pthreadの参照渡し値
ありがとう!!!
あなたは競争条件を持っています - そして 'main'が勝った –
@EdHeal:コメントに答えを書かないでください。コメントは、回答セクションのいつもの監督の対象とはならない:ダウンボート、担当者、レビュー、提案された編集、賞金、質問管理への貢献(回答があるかどうかによって質問に起こることがあるいくつかのルール)回答セクションで。 ONLY._ –
@BarryTheHatchet - 私のコメントは答えとして正当化できるとは思っていませんでしたが、私のために+1する –