Что я вижу сразу - вы не вернете ни как отсюда значение. Если речь идет именно о C, то я бы начал с того, что определил бы структуру типа:
struct WordCount{
char word[256];
unsigned int counters;
}
но так как количество слов заранее не известно, надо делать динамический массив таких структур, или список.
далее находя слово, ищете структуру и в ней увеличиваете счетчик на 1. Если не нашли, то создаете новую. Элементарно решается с помощью std::list, но это уже с++.
Если говорить об ошибках - вы ни где не выделяете слова, так empty_mass[j] == mass_of_all_word[j] вы копируете указатель на строку.
Что бы я сделал:
1. все же описать структуры, тогда вы не перепутаете индексы
2. разделить код на функции, например, функция обработки строки -> передать указатель на массив структур со словами и строку -> в ней вызвать код дробления строки на слова и получить двумерный массив слов, которые потом добавить в массив структур со словами или обработать строку как вам удобно и в цикле пройти все строки
3. добавить обработку возвращаемых значений функций