Salve a tutti !! Ho un problema con l'allocazione in coda alla lista non so perche ma mi da errore (error: invalid operands to binary == (have 'Tlista' {aka 'struct Slista'} and 'void *') alla riga 44 ( if (*l==NULL)) nella funzione aggiungiInCoda mi potete dare una mano!!
rigrazio tutti in anticipo per le risposte
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
/*------------------------------------------------LISTA------*/
typedef struct Slista{
char par[25];
struct Slista *next;
}Tlista;
/*------------------------------------------------PROTOTIPI FUNZIONI------*/
void crealista(Tlista *l);
void aggiungiInCoda(Tlista* l,char* T);
void stampalista(Tlista* l);
/*------------------------------------------------MAIN------*/
int main()
{
char testo[2000];
char *token;
Tlista *l;
printf("inserire testo massimo 2000 caratteri1:\n");
gets(testo);
crealista(l);
token=strtok(testo," ");
while(token!=NULL){
aggiungiInCoda(l,token);
token=strtok(NULL," ");
}
stampalista(l);
return 0;
}
/*------------------------------------------------IMPLEMENTO FUNZIONI------*/
void crealista(Tlista *l){
l=NULL;
}
void aggiungiInCoda(Tlista *l,char* T){
Tlista* p1;
/*caso lista vuota*/
if(*l==NULL){
*l=malloc(sizeof(Tlista));
strcpy(*l->par,T);
*l->next=NULL;
return;
}
/*caso lista con un elemento*/
p1=*l;
/*vaso avanti fino alla fine della lista*/à
while(p1->next!=NULL){
p1=p1->next;
}
/*qui p1 punta all'iltima struttura: ne creo una nuova e sposto il puntatore in avanti*/
p1->next=malloc(sizeof(Tlista));
p1=p1->next;
/*metto i valori nell'ultima struttura*/
strcpy(p1->par,T);
p1->next=NULL;
}
void stampalista(Tlista* l){
while (l != NULL) {
printf("%s ", l->par);
l = l->next;
}
}