質問させて下さい。

あるデータファイルをバラバラにして、部分的にintにして、ある部分はcharのまま、
構造体に入れて返す関数を考えてるんです。

ですが…charを可変長にしようとmallocで確保して構造体に入れたはいいですが、
returnする前にfreeで開放しちゃうとせっかく構造体に入れてても無意味になって
しまいそうに思ってます。

どうすればいいでしょうか。私のような素人にもわかる説明を希望します。
よろしくおねがいします。