ファイルへの保存中はtrex_arr
. 各ポインタは、個別のリンク リストの先頭を示します。そのようなリストごとに、何らかの ID を割り当てる必要があります (任意の番号でかまいませんが、隣接するリストには異なる ID を指定する必要があります)。各trex
構造を保存する前に、ID をファイルに書き込みます。
各構造の後にファイル名リストがあります (リスト内の要素の数がわかっているので、ID は必要ありません)。
次のような構造があるとします。
trex_arr[0]: trex (3 filenames) -> trex (2 filenames) -> NULL
trex_arr[1]: trex (2 filenames) -> NULL
trex_arr[2]: trex (1 filenames) -> NULL
その結果、出力ファイルには次のようになります。
ID0
trex0
filename0
filename1
filename2
ID0
trex1
filename0
ID1
trex2
filename0
filename1
ID2
trex3
filename0
データを読み戻すのは非常に簡単です。ID を追跡する必要があります。変更したら (たとえば からID0
にID1
)、 の次のエントリに進む必要がありますtrex_arr
。また、ファイルを読み取っているときは、読み取った構造体からのポインターが無効であるため、手動で適切に修正する必要があることに注意してください。
または、保存中に各連結リストを最後までトラバースして、その長さを調べ、trex
すべてのチェーンを保存する前に構造の数を保存することもできます。