strlen ti da la lunghezza di una stringa; ma le stringhe sono sempre terminate da un carattere null... per cui devi allocare un posto in più per quel carattere, così:codice:for(k=0;k<cont;k++){ printf("inserire parola: "); scanf("%s",&swap); stringa[k] = (char*) malloc(sizeof(char) * strlen(swap)); strcpy(stringa[k],swap); }
codice:stringa[k] = (char*) malloc(sizeof(char) * (strlen(swap)+1) );