ma la funzione strcmp allora risolve il riferimento dei puntatori visto che come argomento gli passo proprio quelli? non c'è un modo per passargli direttamente quei valori così come succede con l'operatore *? :master:

ps: se invece di operare nel seguente modo:
codice:
void swap(struct db *Ptr, struct db *Ptr2){
struct db temp;

   temp=*Ptr;
   *Ptr=*Ptr2;
   *Ptr2=temp;
}

facessi in questo:
codice:
void swap(struct db *Ptr, struct db *Ptr2){
struct db temp;

   temp.Nome=Ptr->Nome;
   temp.id=Ptr->id;
   temp.carattere=Ptr->carattere;
   Ptr->id=Ptr2->id;
   Ptr->Nome=Ptr2->Nome;
   Ptr->carattere=Ptr2->carattere;
   Ptr2->id=temp.id;
   Ptr2->Nome=temp.Nome;
   Ptr2->carattere=temp.carattere;
}
cosa ci guadagno/perdo?

Grazie.