Ciao a tutti,devo fare un programma nel quale un utente inserisce delle parole e il programma le restituisce in output ordinate lessicograficamente.
Questo è il codice:
codice:int main(int argc, char* argv[]){ char **stringa; char swap[15]; int i=0,c,j,cont,k; printf("Quante parole vuoi inserire?"); scanf("%d",&cont); stringa = (char**) malloc(sizeof(char*) * cont); for(k=0;k<cont;k++){ printf("inserire parola: "); scanf("%s",&swap); stringa[k] = (char*) malloc(sizeof(char) * strlen(swap)); strcpy(stringa[k],swap); } while(stringa[i+1]){ j=i; c = strcmp(stringa[i],stringa[i+1]); if( c >= 0) { strcpy(swap,stringa[i]); strcpy(stringa[i],stringa[i+1]); strcpy(stringa[i+1],swap); while(j>0){ c = strcmp(stringa[j-1],stringa[j]); if(c >= 0){ strcpy(swap,stringa[j-1]); strcpy(stringa[j-1],stringa[j]); strcpy(stringa[j],swap); j--; } else j--; } i++; } else i++; } }
Quello che non capisco è perchè se creo un vettore dove inserisco io le parole funziona,se invece le faccio inserire all'utente no,mi da un problema di Stackdump.
Grazie

Rispondi quotando
