Ciao a tutti, ho bisogno di chiedervi una cosa in cui non riesco a trovare l'errore(molto probabilmente perchè sono agli inizi del C):
questa qua sotto è una funzione che mi dovrebbe eliminare l'ultimo elemento in lista ma ogni volta che l'eseguo mi dà errore nella riga tratteggiata e nonostante i svariati tentativi non sono riuscito a trovare la corretta soluzione
void eliminaultimo(struct cella **lis)
{
struct cella *temp,*prec;
if(*lis==NULL)
{
printf("lista vuota");
//return 1;
}
temp=*lis;
prec=NULL;
while(temp!=NULL)
{
if(temp->next==NULL)
{
prec->next=NULL;------------------
temp=NULL;
free(temp);
break;
}
prec=temp;
temp=temp->next;
}
}
Questa invece è la funzione dove mi serve che la funzione precedente....l'ho messa perchè casomai avessi sbagliato questa.....ma non penso...
void esegui(struct cella *testa)
{
while(testa!=NULL)
{
eliminaultimo(&testa);
inverso(testa);
system("pause");
}
}
Grazie a tutti...ciao....
questa qua sotto è una funzione che mi dovrebbe eliminare l'ultimo elemento in lista ma ogni volta che l'eseguo mi dà errore nella riga tratteggiata e nonostante i svariati tentativi non sono riuscito a trovare la corretta soluzione
void eliminaultimo(struct cella **lis)
{
struct cella *temp,*prec;
if(*lis==NULL)
{
printf("lista vuota");
//return 1;
}
temp=*lis;
prec=NULL;
while(temp!=NULL)
{
if(temp->next==NULL)
{
prec->next=NULL;------------------
temp=NULL;
free(temp);
break;
}
prec=temp;
temp=temp->next;
}
}
Questa invece è la funzione dove mi serve che la funzione precedente....l'ho messa perchè casomai avessi sbagliato questa.....ma non penso...
void esegui(struct cella *testa)
{
while(testa!=NULL)
{
eliminaultimo(&testa);
inverso(testa);
system("pause");
}
}
Grazie a tutti...ciao....