Originariamente inviato da oregon
Se postassi anche la binsearch, si capirebbe meglio ...
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 codice
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;
}
EDIT: c'era qualche parentesi in meno, ma ora sembra funzionare bene anche la binsearch ().