Oggi mi sono messo a studiare le code.
Ho scritto un po' di funzioni "secondarie" e adesso mi stavo cimentando a scrivere la funzione enqueue che dovrebbe inserire in coda un elemento, ma ho problemi a capire come comportarmi quando devo inserire un elemento nel caso la coda non sia vuota.

Vi posto il codice:
codice:
void enqueue(coda *c, int el)
{
 nodo *n = (nodo *) malloc(sizeof(nodo)); // alloco spazio per il nuovo elemento
 n->d = el; // inserisco il valore passato come input al nuovo elemento

  if (!coda_vuota(*c)) // se la pila non ha elementi entra nell'if...
  {
   c->testa = n;
   c->coda = c->testa;
  }
  else //...altrimenti...e qua ho problemi
   c->coda->next = n; 
/*La precedente riga è sicuramente sbagliata, ma non riesco a trovare una soluzione alternativa. Se stampo il contenuto della coda per vedere se tutto è ok la funzione per la stampa va in loop e stampa numeri in continuazione*/
                               
                                


  c->num_elem++;
}
Cosa sbaglio??


Grazie