我试图通过使用结构体将多个值传递给线程。
这是我的代码:
int main()
{
struct Data
{
int test_data;
int test_again;
};
Data data_struct;
data_struct.test_data = 0;
data_struct.test_again = 1;
pthread_create(&thread, NULL, Process_Data, (void *)&data_struct);
return 0;
}
void* Process_Data(void *data_struct)
{
struct test
{
int test_variable;
int test_two;
};
test testing;
testing.test_variable = *((int *)data_struct.test_data);
testing.test_two = *((int *)data_struct.test_again);
}
为了简单起见,我已经省略了任何代码(包括#include
和线程连接等),但如果需要更多的代码,请随时提出。
当传递一个整数变量时,线程正常工作。
这是我收到的错误:
在函数“void * Process_Data(void *)”中:错误:请求对非类类型“void *”的“data_struct”中的成员“test_variable”的成员“test_variable”的测试。testing.test_variable = *((int *)data_test.test_variable);
另一个变量也是如此
感谢您提前提供任何建议。
std::thread
不是你的选择吗? - Fred Larson