使用C編寫push(Queue **, Nod *)
方法。想要檢查我是否已經將nods
推到queue
上的基礎知識。C中的函數將`items`推送到隊列中
void push_back(Queue ** q, Process * p){
p->next = NULL;
if((*q)->head == NULL && (*q)->tail ==NULL){
(*q)->head = (*q)->tail = p;
}
(*q)->tail->next = p->next;
(*q)->tail = p;
}
上午我通過正確地分配p->next
分配NULL
到(*q)->tail->next
?
這是什麼原因傳遞指向'隊列'的指針在這裏?你不會在任何地方重新分配'q',所以它只是無用的重定向發生。 –
我認爲指向指針的指針可以讓我編寫一個函數,不需要返回指針回調用者 – JJL
如果你把它叫做'push_back(&some_queue,some_process)',那麼你正在模擬* call by引用*這是一種方式,因此您可以重新分配作爲第一個參數傳遞的指針。那麼你可以在函數中做'* q = some_other_queue'。既然你不這樣做,你不需要額外的重定向。 –