C kompiling
Jeg er ny til at kode i C, og kan ikke compile min kode. Jeg får følgene fejlmeddelelse:> gcc -pthread quicksort.c
quicksort.c: In function `pushQueue':
quicksort.c:27: error: invalid type argument of `->'
quicksort.c:28: warning: assignment from incompatible pointer type
quicksort.c:29: error: invalid type argument of `->'
quicksort.c: At top level:
quicksort.c:21: error: storage size of `jobQueue' isn't known
Min kode ser således ud:
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct _sortingthread_t {
int left;
int right;
} sortingthread_t;
typedef struct _queueElement_t {
struct _queueElement_t* forward;
struct _queueElement_t* backward;
struct sortingthread_t* data;
} queueElement_t;
typedef struct _queue_t {
struct queueElement_t* first;
struct queueElement_t* last;
} queue_t;
struct queue_t jobQueue;
void pushQueue(sortingthread_t *data) {
queueElement_t *new;
new = malloc(sizeof(queueElement_t));
if(jobQueue->first == NULL) {
new->data=data;
jobQueue->first = *new;
}
}
+mere kode, jeg dog ikke tror har noget med fejlen at gøre, da det er kompilet korrekt tidligere (spørg endelig hvis i vil se det). Kan nogen hjælpe?
Meningen med koden, er at lave en kø(queue_t), der indeholder forrste, og bagerste kø-elementer (queueElement_t). Hvert kø element indeholder en pointer til de kø-elementerne foran, og bag den.