-2
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;
}
這是我的代碼的一部分,當我試圖編譯我越來越休耕錯誤:錯誤:「(」令牌隊列之前的期望標識符
是什麼它不對?
歡迎棧溢出! [請參閱此討論,爲什麼不在'C'中投射'malloc()'和family的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
只是說''newPriorityQueue - >(queue + i) - > maxSize'是編寫有意義且易於理解的代碼的一種非常奇怪的方式。 –
你可以做'(newPriorityQueue-> queue + i) - > maxSize = ...'。不漂亮,但應該工作。傳統的方式是'newPriorityQueue-> queue [i] .maxSize = ...'。 – EOF