hai ragione, ora posto anche quella perchè tra tanti sbattimenti mi sembra di capire che l'errore sia proprio in quella funzione, visto che getch, ungetch e getword sembrano funzionare bene. Rispondendo alla tua domanda, si, viene allocato dalla binsearch. Ecco il codiceOriginariamente inviato da oregon
Se postassi anche la binsearch, si capirebbe meglio ...
EDIT: c'era qualche parentesi in meno, ma ora sembra funzionare bene anche la binsearch ().codice:struct key * binsearch(char *word, struct key *tab, int limit) { int cond; struct key *low = &tab[0]; struct key *high = &tab[limit]; struct key *middle; while (low < high) { middle = low + (high - low) / 2; // printf("%s\n", middle->word); //ho inserito questa printf per sapere cosa faceva //di volta in volta la funzione e a quanto pare sbaglia if ((cond = strcmp(word, middle->word)) == 0) return middle; else if (cond > 0) low = middle + 1; else high = middle; } return NULL; }

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando