Я пытаюсь получить доступ к членам моей структуры, которая передается функции, которая была вызвана процессом pthread. Это просто, но по какой-то причине я не могу понять это.
Я пытался использовать data.count или data-> count, но я думаю, мне нужно привести свой указатель данных к моей структуре, которая передана ему? Я очень смущен, но уверен, что решение простое. пожалуйста помоги. Вот структура, за которой следуют вызов pthread и используемая функция. Благодарю. Я могу добавить, что BUFFER_SIZE определяется глобально, так что это не проблема, насколько я понимаю. Я не поделился этим в коде.
typedef struct {
int buffer[BUFFER_SIZE];
int count;
int top;
int next;
pthread_mutex_t count_lock;
} prodcons;
//this is in main.c
prodcons pc_nums;
//create producer thread
pthread_create(&tid, &attr, *producer, &pc_nums);
//This is the runner function, pthread call this
void *producer(void *data)
{
//set up data structure to be shared between producer and consumer
int number;
prodcons primeNums;
pc_init(&primeNums);
//call consumer thread
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&tid, &attr, *consumer, &primeNums);
while (data->count < BUFFER_SIZE)
{
number = pc_pop(data);
factor2pc(&primeNums, number);
}
}
Я просто ожидаю получить доступ к переменным в моей структуре, переданным моим pthread_create, но я получаю ошибку: 'count' не является частью какой-либо структуры или объединения. Мне действительно нужно просто выяснить, как заставить данные указывать на мою структуру, чтобы я мог получить доступ к ее элементам