ネストされたリンクリストを含むC構造体を妥当な方法でディスクにダンプするために学校で見逃した標準的なアプローチはありますか?私がしたくないことは次のとおりです。
- プロトコルバッファまたは他の同様のシリアライザタを使用し、
- JSON、XMLなどを作成したくない
私はいくつかのアイデアを持っています:
- 正確なメモリ量を割り当て(または既存のメモリ量を拡張)、それを自分で管理し、相対アドレスを管理するためにいくつかの追加フィールドを使用するアプローチのようにリスト要素をスタックに配置します。必要に応じて、ブロックをディスクにダンプします。ディスクからブロックをマップする手順があると、バイトオーダーを認識した望ましい構造が作成されます。
- メイン構造をファイルにプッシュしてから、リスト要素をプッシュし、リストに関する情報をファイルのヘッダーに格納します。
これをイメージするために、サンプルコードを投稿して詳細を説明します。
typedef struct{
int b;
List *next;
}List;
typedef struct{
float b;
List2 *next;
}List2;
typedef struct{
List *head;
List *tail;
} info;
typedef struct{
List2 *head;
List2 *tail;
} info2;
struct data
{
int a;
char t[10];
info first;
info second;
info2 third;
};
乾杯P。
編集:
主な構造を拡張しましたが、前の構造では問題が完全に示されていないようです。ディスク上のポインタは役に立たないことを知っています。アイデアと擬似コードは許可されています。