@Tater: The program works as it is. No extra pointers are needed.
@Salem: He posted code. My idea was that the motivation to learn, if the assignment can't be turned in for marks, is sharply diminished. Within a 24 hour period, "baby steps" couldn't work, in this case.
The OP was given a link to the prior dictionary/wordlist thread. He didn't choose to use your logic. I'm not the spokesman for your algorithmic ideas. If you want to promote those concepts, go right ahead. They're not suitable in this case, but you go ahead - please!
The OP can figure out what he wants to add, and what he wants to subtract, or change. I made it plain it wasn't a finished program for all his needs. It was code similar to what he needs, and simple enough that he can readily learn from it. That was the goal.A suggestor was definitely not required this time, and outputting some of the lexicographically nearby words will give ridiculous "suggestions" of words that are not even remotely similar. Not to mention that the code would buffer underrun or overrun.
It will do fine. If you want to teach him a better binary search, go right ahead. If you want to teach him how to use several smaller array's, go right ahead. He's not ready for most of what you're proposing, but you go right ahead and teach him, Malcolm. I'm much too old to be swayed by your belly-aching.That's also an inefficient binary search, and storing all the words in a single array is wasteful.