• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Vnepomuceno

error: dereferencing pointer to incomplete type

3 mensagens neste tópico

Boa noite, estou a fazer um programa em C que mexe com filas e com threads (programação concorrente) mas está-me a dar o erro: "error: dereferencing pointer to incomplete type". O código é:

/* queue_element_t */
typedef struct queue_element {
    struct _sthread *thread;
    struct queue_element *next;
} queue_element_t;

/* queue_t */
typedef struct _queue {
  queue_element_t *first;
  queue_element_t *last;
} queue_t;

void queue_print(queue_t *queue) {
queue_element_t *el = queue->first;
struct _sthread *thr;

if(el == NULL) {
	return;
}
for(thr = el->thread; el != NULL; el = el->next, thr = el->thread) {
	printf(" %d,%d", thr->tid, thr->quantum);
}
printf("\n");
}

struct _sthread* queue_find_tid(queue_t *queue, int tid) {
queue_element_t *el;
struct _sthread *thr;

for(el = queue->first, thr = el->thread; el != NULL; el = el->next, thr = el->thread) {
	if(thr->tid == tid)
		return el->thread;
}
return NULL;
}

Esse erro é apontado duas vezes para a linha

printf(" %d,%d", thr->tid, thr->quantum);

e uma para a linha

if(thr->tid == tid)

Alguém me pode ajudar a detectar o que está mal nestas linhas e o que precisa de ser mudado?  :wallbash:

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, é este:

struct _sthread {
  sthread_ctx_t *saved_ctx;
  sthread_start_func_t start_routine_ptr;
  long wake_time;
  int join_tid;
  void* join_ret;
  void* args;
  int tid;
  int nice;
  int priority;
  int quantum;
  int rem_quantum;
};

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora