char** strs = (char**)malloc(sizeof(char*) * count);
for(i = 0; i < count; i++)
{
strs[i] = (char*)malloc(sizeof(char) * SIZE);
char* value = pun->cognome;
strcpy(strs[i], value);
pun = pun->succ;
}
/*
int j=0;
char* minore;
char* maggiore;
char* scambio;
int scmabia = 0;
for(i = 0;i < (count-1); i++)
{
int scambia = 0;
for(j=i+1;j<count;j++)
{
if(strs[j] < strs[i])
minore = strs[j];
scambia = 1;
}
if (scambia == 1)
{
maggiore = strs[i];
strs[i] = minore;
strs[j] = maggiore;
strcpy(strs[i],minore);
strcpy(strs[j],maggiore);
}
}*/
for(i = 0; i < count; i++)
printf(">> %s <<\n", strs[i]);
for(i = 0; i < count; i++)
free(strs[i]);
free(strs);


Qualcuno ha una vaga idea del perchè non funzioni questo pezzo di codice?????
Io leggo da file una lista di cognomi e nomi.....
creo dinamicamente la lista e tengo il conto di quanti ne ho letti (count)
ora devo ordinare il file
quindi salvo in un vettore tutti i cognomi strs [count] [SIZE] (impostato = 20)
perchè non risco a fare gli scambi????? avete un'idea????

Grazie a tutti per il vostro aiuto