princess88
13-09-2008, 10:02
salve avrei un problema con un programma che realizza una lista..
posto solo le dichiarazioni e la funzione con cui ho problemi
typedef char data[20];
typedef struct nominativo{
data cognome;
int orario;};
typedef struct linked_list{
nominativo appuntamento;
struct linked_list *next;};
typedef struct linked_list element;
typedef element *link;
char cancellazione (link *nuovo,data valore)
{
link prec;
link punt;
link temp;
if( valore == ((*nuovo)->appuntamento.cognome) )
{
temp=*nuovo;
*nuovo=(*nuovo)->next;
free(temp);
return *valore;
}
else{
prec=*nuovo;
punt=(*nuovo)->next;
while( (punt != NULL) && ((punt->appuntamento.cognome) != valore))
{
prec=punt;
punt=punt->next;
}
if(punt!=NULL)
{
temp=punt;
prec->next=punt->next;
free(temp);
return *valore;
}
}
}
in effetti il problema è che la funzione non entra mai nel primo if anche quando la condizione è verificata.
Sono agli inizi e credo si veda :)
spero qualcuno mi aiuti, thanks.
posto solo le dichiarazioni e la funzione con cui ho problemi
typedef char data[20];
typedef struct nominativo{
data cognome;
int orario;};
typedef struct linked_list{
nominativo appuntamento;
struct linked_list *next;};
typedef struct linked_list element;
typedef element *link;
char cancellazione (link *nuovo,data valore)
{
link prec;
link punt;
link temp;
if( valore == ((*nuovo)->appuntamento.cognome) )
{
temp=*nuovo;
*nuovo=(*nuovo)->next;
free(temp);
return *valore;
}
else{
prec=*nuovo;
punt=(*nuovo)->next;
while( (punt != NULL) && ((punt->appuntamento.cognome) != valore))
{
prec=punt;
punt=punt->next;
}
if(punt!=NULL)
{
temp=punt;
prec->next=punt->next;
free(temp);
return *valore;
}
}
}
in effetti il problema è che la funzione non entra mai nel primo if anche quando la condizione è verificata.
Sono agli inizi e credo si veda :)
spero qualcuno mi aiuti, thanks.