Проблема в том, что когда вы используете typedef struct
для введения нового struct
, для которого не требуется ключевое слово struct
, вы не можете ссылаться на имя typedef
внутри объявления struct
. Вместо этого вам нужно использовать полное имя для структуры. Например:
typedef struct sharedData
{
sem_t* forks;
int id;
void (*forkFunc)(struct sharedData*);
};
Кроме того, ваш оператор typedef
в настоящее время недействителен, потому что вы не указали имя для вызова struct sharedData
. Один из способов исправить это будет следующим:
typedef struct sharedData
{
sem_t* forks;
int id;
void (*forkFunc)(struct sharedData*);
} sharedData;
Теперь вы можете ссылаться на структуру по полному имени struct sharedData
или по сокращенному имени sharedData
.