Problema en C (Ayuda, sencillo)

Es un problema de listas, una cola en sí.

Muchas gracias, a ver si tenéis 5 minutos para mirármelo.

Estos son los fallos

hdrhdrh.c:59: error: incompatible types in assignment
hdrhdrh.c:79: error: incompatible type for argument 2 of `insertar'
hdrhdrh.c:79: error: incompatible types in assignment
hdrhdrh.c:175: error: incompatible type for argument 1 of `estavacia'
hdrhdrh.c:182: warning: assignment makes pointer from integer without a cast
hdrhdrh.c:194: error: incompatible types in return

Dejo el código:

#include <stdio.h>
#include <stdlib.h>
#define TAM 30
#define TRUE 1
#define FALSE 0

/*declaracion de la cola*/

typedef struct _DATOS
{
    char nombre[20];
    char apellidos[30];
    char telefono[12];
    char movil[12];
    int edad;

}DATOS;

struct nodo
{

int elemento;

struct nodo *siguiente;

};

typedef struct nodo Nodo;

typedef struct
{

Nodo *frente;

Nodo *final;

}Cola;

/*Prototipos de funciones*/

Nodo crearcola(Cola *cola);
Nodo insertar (Cola *cola, int x);
Nodo borrar (Cola *cola);
int estavacia (Cola cola);
DATOS leer ( void );

int main(void)
{

/*Declaracion de variables locales*/

Nodo *lista;
int num;
DATOS dat;
Cola *cola;

/*Algoritmo*/

lista = crearcola (cola);

   do
   {

   printf("--------------------------------\n\n");
   printf("Bienvenido a la agenda del movil \n\n");
   printf("Elije una opcion : \n\n");
   printf("1.-Añadir. \n");
   printf("2.-Borrar.\n");
   printf("4.-Salir.\n");

   printf("Su opcion es: ");
   scanf("%d",&num);

    switch(num)
    {

        case 1 :  printf("Introduce los valores del dato");
                  dat = leer ();
                  lista = insertar (cola,dat);
        break;

        case 2 :  borrar (cola);
        break;

        case 3 :
        break;

      default : printf("Error: Introduce un numero del menu");

    }

   }while(num!=3);


   return(0);

}



/*definicion de las funciones*/

DATOS leer ( void )
{

    /*Declaracion de variables locales*/

    DATOS d;

    /*Algoritmo*/

   printf("Introduce Nombre: ");
   scanf("\n%s", d.nombre);
   printf("Introduce Apellido: ");
   scanf("\n%s",d.apellidos);
   printf("Introduce Telefono: ");
   scanf("\n%s",d.telefono);
   printf("Introduce Movil: ");
   scanf("\n%s",d.movil);
   printf("Introduce Edad: ");
   scanf("%d",&d.edad);

   return(d);
}

Nodo crearcola(Cola *cola)

{

cola->frente=cola->final=NULL;

}

/*funcion que inserta el dato en la parte final de la cola*/

Nodo insertar (Cola *cola, int x)

{

Nodo *nuevo;

nuevo=(Nodo*)malloc(sizeof(Nodo));

nuevo->elemento=x;

nuevo->siguiente=NULL;

if(estavacia(*cola))

{

cola->frente=nuevo;

}

else

cola->final->siguiente=nuevo;

cola->final=nuevo;

}

/*elimina el elemento que esta aL frente de la cola*/

Nodo borrar (Cola *cola)

{

Nodo *temp;
Nodo *nuevo;

temp = NULL;

if(!estavacia(cola))

{


nuevo=cola->frente;

temp=cola->frente->elemento;

cola->frente=cola->frente->siguiente;

free(nuevo);

}

else

printf("ERROR, cola vacia, se puede eliminar\a\n");

return (temp);

}

int estavacia (Cola cola)

{
    int resp;

    if (cola.frente == NULL)
    {
        resp = TRUE;
    }
    else
    {
        resp = FALSE;
    }

    return (resp);

}
e:\text1.c(59) : error C2115: '=' : incompatible types
e:\text1.c(79) : error C2115: 'function' : incompatible types
e:\text1.c(79) : warning C4024: 'insertar' : different types for formal and actual parameter 2
e:\text1.c(79) : error C2115: '=' : incompatible types
e:\text1.c(175) : error C2115: 'function' : incompatible types
e:\text1.c(175) : warning C4024: 'estavacia' : different types for formal and actual parameter 1
e:\text1.c(182) : warning C4047: '=' : 'struct nodo *' differs in levels of indirection from 'int '
e:\text1.c(194) : error C2115: 'return' : incompatible types
Error executing cl.exe.

Text1.obj - 5 error(s), 3 warning(s)

creo que debes cambiar de compilador por uno que te diga ande estas fallando
(mensaje borrado)
2 respuestas