Если хочется из функции вернуть указатель на структуру, для этой
структуры должна быть выделена память. Получается либо статическое
выделение (тогда нельзя вызовы из разных потоков, да и эта память
пустует 99% времени), либо выделено заранее перед вызовом функции
(тот ещё геморрой).