Ma che senso ha fare quell'incremento?

E poi questa riga

char *word[MAX_WORDS];

alloca MAX_WORDS ma non lo spazio per ogni stringa ...