Perchè mi da tutti questo errore nella funzione EstrazioneTestaLista?
Errore:
incompatible type for argument 1 of `free'
codice:
#include <stdio.h>
#include <stdlib.h>
struct EL{
char info;
struct EL *prox;
};
typedef struct EL Elemlista;
typedef Elemlista *Listadinomi;
typedef enum{TRUE,FALSE} boolean;
void Inizializza(Listadinomi *Lista);// funzione che inizializza lista
void InserisciInTesta(Listadinomi *Lista, int x);
boolean ListaVuota(Listadinomi Lista);
void InserisciInCoda(Listadinomi *Lista,char y);
void EstrazioneTestaLista(Listadinomi Lista);
int main(int argc, char *argv[])
{
Listadinomi lista1;
int x;
x=10;
char y='t';
Inizializza(&lista1); //inizializzazione lista
InserisciInTesta(&lista1,x);
InserisciInCoda(&lista1,y);
[color=#FF0080] EstrazioneTestaLista(Listadinomi lista1);[/color]
if((ListaVuota(lista1))==TRUE){
printf("la lista e' vuota\n");
//}else{
// printf("la lista contiene: %d , %c\n",x,y);}
system("PAUSE");
return 0;
}
void Inizializza(Listadinomi *Lista){
*Lista=NULL;
}
boolean ListaVuota(Listadinomi Lista){
if(Lista==NULL) return TRUE;
else return FALSE;
}
void InserisciInTesta(Listadinomi *Lista, int x){
Elemlista *punt;
punt=malloc(sizeof(Elemlista));
punt->info=x;
punt->prox=*Lista;
*Lista=punt;
}
void InserisciInCoda(Listadinomi *Lista,char y){
if((ListaVuota(*Lista))==TRUE){
Elemlista *punt;
punt=malloc(sizeof(Elemlista));
punt->info=y;
punt->prox=NULL;
*Lista=punt;
} else {InserisciInCoda(&((*Lista)->prox),y);
}
}
[color=#FF0080]void EstrazioneTestaLista(Listadinomi Lista){
Elemlista s;
*Lista=s;
*Lista=*Lista->prox;
free(s); }[/color]