>>4です。
解決しました。

戻り値が構造体へのポインタの関数を使うことと、staticを使用することの2つがキーだったみたいです。

皆さん、ありがとうございました。