Так что я пытаюсь передать несколько значений в поток с помощью struct.C++: передать структуру в PThread
Это то, что у меня есть:
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);
}
Я оставил любой код (inluding #include
с и thrad присоединяется и т.д.) Я думаю, что не является необходимым для этого вопроса для простоты, однако, если больше кода необходимо пожалуйста, просто спросите.
Поток работал нормально при передаче только одной целочисленной переменной.
Это ошибка я получаю:
В функции 'пустота * process_data (недействительный *): ошибка: запрос члена „test_variable“ в „data_struct“, который имеет типа неклассовой Пустоты * 'testing.test_variable = * ((int *) data_test.test_variable);
И то же самое для других переменных
Заранее спасибо за любые советы.
Ну, стыки сделать некоторые различия. Без них, что сохраняет структуру живым? –
Является ли ['std :: thread'] (http://en.cppreference.com/w/cpp/thread/thread) не вариантом для вас? –