我传入了一个从结构转换为函数 topTwo 的 void 指针。当我将其转换回来并尝试从结构中获取数据时,我得到了地址。我究竟做错了什么?在这个函数中,我试图localStruct->number
返回 1,而不是返回地址。
void *topTwo(void *p)
{
struct Variables * localStruct;
localStruct= (struct Variables *) p;
cout<<localStruct->number<<endl;
int z = long(localStruct->number);
cout<<z<<endl;
}
这是结构
struct Variables{
int largestNum;
int secondLargestNum;
int number;
};
这是传入数据的主要函数。
int main()
{
Variables *vars;
vars= new struct Variables();
vars->largestNum=0;
vars->secondLargestNum=0;
vars->number=0;
pthread_t tid[5];
for(int i=0; i<5; i++)
{
vars->number=i;
cout<<vars->number<<endl;
void * sVoid;
sVoid = (void *) &vars;
pthread_create(&tid[i], NULL, topTwo,(void *) sVoid);
pthread_join(tid[i], NULL);
}
}