C の話

一般的に,「関数の中で構造体を作ってそのポインタを返す」 のは実は間違いで,「関数の外で構造体を作って,関数にポインタを渡して書き込んでもらう」 とせねばならないのだろうか.前者もたいてい動くのだが,厳密に言えば関数終了時に構造体の実体がなくなってしまう気がする.後者にすると呼び出し元のコードが汚くなる感じがするんだよなー.