Implementacion de una cola mediante lista enlazada circular

c:
/* Implementación de una cola mediante lista enlazada circular */
/* ----------------------------------------------------------- */

#include <stdio.h>
#include <stdlib.h>

  /* declaracion */
  /* ----------- */
struct tcola
{
  int clave;
  struct tcola *sig;
};

  /* prototipos y codificación */
  /* ------------------------- */

void crear(struct tcola **cola)
{
  *cola = NULL;
}

int vacia(struct tcola *cola)
{
  return (cola == NULL);
}

void encolar(struct tcola **cola, int elem)
{
  struct tcola *nuevo;

  nuevo = (struct tcola *) malloc(sizeof(struct tcola));
  nuevo->clave = elem;
  if (*cola == NULL)
  nuevo->sig = nuevo;
  else {
    nuevo->sig = (*cola)->sig;
    (*cola)->sig = nuevo;
  }
  (*cola) = nuevo;
}

void desencolar(struct tcola **c1, int *elem)
{
  struct tcola *aux;

  *elem = (*c1)->sig->clave;
  if ((*c1) == (*c1)->sig) {
    free(*c1);
    *c1 = NULL;
  }
  else {
    aux = (*c1)->sig;
    (*c1)->sig = aux->sig;
    free(aux);
  }
}

  /* Programa de prueba */
  /* ------------------ */
#include <stdio.h>

int main(void)
{
  struct tcola *cola;
  int elem;

  crear(&#038;cola);
  if (vacia(cola)) printf("\nCola vacia!");
  encolar(&#038;cola, 3);
  desencolar(&#038;cola, &#038;elem);

  return 0;
}
¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P