-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