char word[length];
char *rtnPtr = word;
...
return rtnPtr;
Это плохо. Вы возвращаете указатель на автоматическую (облачную) переменную, которая будет уничтожена при возврате функции. Указатель будет указывать на уничтоженную переменную, которая почти наверняка произведет «странные» результаты (неопределенное поведение).
Вы должны выделить строку с помощью malloc
(например, char *rtnPtr = malloc(length)
), затем free
позже в main
.