我有一个线程调用的函数。这个函数有一个唯一的参数,它是 queue::my_queue 。所以我需要在线程调用的方法中对 void 指针执行强制转换,如下所示:
void *AddPacket(void *Ptr)
{ queue<int> my_queue = (queue*)Ptr ;
my_queue.push(byte) ;
}
总的来说,我这样做:
int main()
{ // do business
pthread_create(&thread, NULL, &AddPacket, (void*)queue) ;
}
但两种转换都是错误的。
第一次转换导致错误:
请求'my_queue'中的成员'push',它是非类类型'queue*'</p>
第二个:
从类型“队列”到类型“无效*”的无效转换</p>
我该如何解决这个问题?