我有以下原型的非常简单的方法:
void *station_0(void* p1);
我这样称呼它:
product_record r;
pthread_create(thread, NULL, station_0, (void *)&r);
在此方法中,我所需要做的就是将p1
其强制转换为已定义的struct product_record
,我目前正在我的方法中尝试此操作:
product_record p = (product_record)p1
但是编译器在那行抱怨(上面)说 error: invalid conversion from 'void*' to 'int' [-fpermissive]
我认为我根本听不懂这个警告。为什么不能简单地将avoid*
强制转换为我的结构?
您需要两个步骤-将void指针转换为product_record
指针,然后取消对该指针的引用。这可以在线完成
product_record p = *(static_cast<product_record *>(p1));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句