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); 
}
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:
stringa[k] = (char*) malloc(sizeof(char) * (strlen(swap)+1) );