struct nodePatient {
struct Patient * patient;
struct nodePatient * next;
};
struct linkedQueue {
struct nodePatient * firstNode;
struct nodePatient * lastNode;
unsigned size;
unsigned maxSize;
};
struct PriorityQueue {
struct linkedQueue * queue;
int size;
unsigned minPriorityValue;
};
struct PriorityQueue * createPriorityQueue(unsigned minPriorityValue) {
struct PriorityQueue * newPriorityQueue = (struct PriorityQueue*) malloc (sizeof (struct PriorityQueue));
newPriorityQueue->queue = (struct linkedQueue*) calloc (minPriorityValue+1, sizeof (struct linkedQueue));
int i;
newPriorityQueue->minPriorityValue = minPriorityValue;
for(i = 0; i < minPriorityValue; i++) {
newPriorityQueue->(queue+i)->maxSize = UNLIMITED_SIZE;
newPriorityQueue->(queue+i)->size = 0;
newPriorityQueue->(queue+i)->firstNode = NULL;
newPriorityQueue->(queue+i)->lastNode = NULL;
}
return newPriorityQueue;
}
Dies ist ein Teil meines Codes und wenn ich zu kompilieren versuche ich die Brache Fehler bin immer:Fehler: erwartete Kennung vor ‚(‘ Token-Warteschlange
Was ist es falsch daran?
Willkommen bei Stack:
Man könnte es durch die Verwendung leichter lesbar machen Überlauf! [Bitte lesen Sie die Diskussion darüber, warum der Rückgabewert von 'malloc()' und die Familie in 'C' nicht umgewandelt werden soll.] (Http://stackoverflow.com/q/605845/2173917). –
Nur zu sagen, 'newPriorityQueue -> (Warteschlange + i) -> maxSize' ist eine ziemlich seltsame Art, einen sinnvollen und verständlichen Code zu schreiben. –
Sie könnten '(newPriorityQueue-> queue + i) -> maxSize = ...'. Nicht schön, aber sollte funktionieren. Der traditionelle Weg wäre 'newPriorityQueue-> queue [i] .maxSize = ...'. – EOF