我正在使用pthreads通过结构将多个参数传递给函数。我正在尝试使用从void *到struct thread_args *的转换来转换我传入的结构。这给了我一个错误。有人可以解释如何用C ++来管理它。
这是我的代码:
struct thread_args
{
int customer_num;
int res_vector[NUMBER_OF_RESOURCES];
};
typedef struct thread_args theArgs;
int request_resources(int customer_num, int request[]);
int release_resources(int customer_num, int release[]);
void req_converter( void * x );
void rel_converter( void * x );
void req_converter( void * x )
{
theArgs * args = dynamic_cast<theArgs *>(x); //(struct arg_struct *) x;
request_resources( x.customer_num, x.res_vector);
}
我收到的错误消息是:
error: cannot dynamic_cast ‘x’ (of type ‘void*’) to type ‘theArgs* {aka struct thread_args*}’ (source is not a pointer to class)
有人可以解释使用pthreads将结构传递给一个函数的最佳方法,该函数将使用struct参数在C ++中调用带有多个参数的第二个函数吗?