Salve,
vi riporto il seguente codice:
codice:
void cancella(struct elemento *p,int n) {
    struct elemento *paus;
    printf("\n\n\t\tEliminazione occorrenze del \"%d\"....\n",n);
    paus = p;
    while(p!=NULL) {
        if(p->inf==n) { 
            paus->pun = p->pun;
            free(p);
            p = (struct elemento*)malloc(sizeof(struct elemento));
            p = paus;
        } 
        paus = p;
        p = p->pun;
    }
}
Questa routine funziona, eleminia tutit gli elementi corrispondenti a n, ma se è il primo elemento a corrispondere a n, non lo cancella ma gli assegna il valore di 0. Perchè?
Grazie in anticipo