Allora ho scritto questo insertion sort per effettuare degli ordinamenti, sò che ci sono algoritmi più efficienti ma a me serviva questo. Questo algoritmo prende in ingresso un array di struutture di tipo
codice:
// DICHIARAZIONE STRUTTURA
struct s
{
         int numero;
         char *carattere;
};

   
int main
{
   typedef struct s strutt;

   // DICHIARO ARRAY DI STRUTTURE DI3 ELEM
   // AFFETTO ASSEGNAZIONI
   strutt array[3];
   array[0].numero = 2;
   array[0].carattere = "prova";

   array[1].numero = 3;
   array[1].carattere = "ciao";
  
   array[2].numero = 1;
   array[2].carattere = "casa";

   // RICHIAMO ALGORITMO
   insertion_sort(array, 3);
}


// IMPLEMENTAZIONE DELL'INSERTION S.
void insertion_sort(strutt *x, int length)
{
  strutt key;
  int i,j=1,scambi=0;
  for(j=1;j<length;j++)
  {
     key = x[j];
     i=j-1;
     while(x[i].numero>key.numero && i>=0) 
     {
         x[i+1] = x[i];
         i--;
     }
     x[i+1] = key;
  }
}
Così come sono ora l'algoritmo funziona. Se però al posto di ordinare il campo numerico della struttura voglio ordinare il puntatore a char non funziona.
Come posso modificare l'algoritmo per fargli ordinare anche in base ai caratteri?