Ciao a tutti,
Ho un esercizio da fare in cui mi si chiede di ordinare con qsort gli argomenti passati a una funzione tramite linea di comando.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int compare(const void *a, const void *b){
char *x= * (char**) a;
char *y= * (char**) b;
int cmp=strcmp(x,y);
if(cmp>0) return -1;
if(cmp==0) return 0;
if(cmp<0) return 1;
}
int main(int argn, char *argv[]){
char **vet; int i, j=1;
vet=(char**) malloc((argn-1) * sizeof(char*));
for(i=0; i<argn-1; i++){
vet[i]=(char*) malloc((strlen(argv[j])+1) * sizeof(char));
strcpy(argv[j], vet[i]);
j++;
}
qsort(vet, argn-1, sizeof(char*), compare);
for(i=0; i<argn-1; i++){
printf("%s\n", vet[i]);
}
return 0;
}
Allora il codice penso che sia giusto però quando vado, da terminale a eseguirlo, mi stampa delle linee bianche, al posto delle stringhe che immetto.
Qualcuno può darmi una mano??