Salve a tutti .. sto continuando con i miei esercizi in C ma trovo molte difficoltà con le liste.Sto svolgendo un esercizio che mi chide di aggiungere un elemento nella posizione data n,ma non riesco a capire per quale motivo creando la funzione che riporterò di seguito la lista che mi stampa è quella iniziale ,o meglio,non mi inserisce nessun elemento nella posizione data. dal profondo della disperazionegrazie a tutti in anticipo...
codice:
filaSCL aggiungi(filaSCL fila,Persona p){
    filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL));
    temp->elemento=p;
    temp->next=NULL;
    filaSCL ultimo=fila;
    while(ultimo->next!=NULL){
        ultimo=ultimo->next;
    }
    ultimo->next=temp;
    filaSCL temp1=fila;
    return temp1;
}

filaSCL raccomanda(filaSCL fila, Persona p, const int n){
    int len=lunghezza(fila);
    if(n>len){
        return aggiungi(fila,p);
    }
    else{
        int num=n;
        filaSCL ultimo=fila;
        while(num!=1){
            ultimo=ultimo->next;
            num--;
        }
        filaSCL temp=(nodoFilaSCL*)malloc(sizeof(nodoFilaSCL));
        filaSCL temp1=ultimo;
        temp->elemento=p;
        temp->next=temp1;
        ultimo=temp;
        filaSCL fila2=fila;
        return fila2;
    }
}
            
        

int lunghezza(filaSCL fila){
    if(fila!=NULL){
        return 1+lunghezza(fila->next);
    }
    return 0;
}