唐突なんですが、構造体のポインタを返す関数があったらそのポインタの指すメモリ領域は
いつ開放されるのでしょうか。

関数の中で新たにヒープに割り当てて、そのアドレスを返したりしているのだったら、
あとでfreeなどで開放してやらないとマズイと思うのですが、
標準関数のlocaltimeなんかはそんなことしませんし。
その辺の解説してもらえるとありがたいです。