fgets(word, 100, stdin);
word = strtok(phrase, " ");
У вас здесь неправильные параметры.Вы разделяете строку в phrase
, которая не инициализирована, и затем присваиваете результат для word
, перезаписывая указатель на ранее выделенную память.
Возможно, вы предназначались для fgets
для чтения ввода в phrase
вместо word
.