Понял ваш вопрос, вам нужно создать массив возвращаемый через указатель с помощью malloc/calloc. В вашем случае нужно
вместо
char *words[fstrlen(s) / 2 + 1]
//написать
char* words = malloc(fstrlen(s)/2+1);
тогда массив не уничтожится при выходе из функции.