牛、豚、鶏、どれか一つ食べられなくなるとしたら?

struct node{
NODE *next[5];
NODE *pre;
}NODE;

というような構造体を定義して

int main(){
int i;
NODE *first;
NODE *nd[1000];

first=(NODE*)malloc(sizeof(NODE));

for(i=0;i<1000;i++){
nd[i]=(NODE*)malloc(sizeof(NODE));
}

//各NODEを樹構造に定義
first->next[0]=nd[0];


}

のようなプログラムを組んで


NODE[5]→NODE[0]→NODE[1]→NODE[3]
      ↓
    ←NODE[4]→
 
のようなリンクリストを構成したのですが
そのリストをそのままファイルに出力できませんか?
テキストに落として再読み込みすることは考えたのですがメモリの状態をそのままファイルに落とす方法があればそちらのほうが簡便ですので
詳しいいらっしゃいますか?

開発環境はVisualSturio.NETでC++を使っています。

A 回答 (1件)

>メモリの状態をそのままファイルに落とす方法


とありますが

for(i=0;i<1000;i++){
nd[i]=(NODE*)malloc(sizeof(NODE));
}

これはバラバラに1000個確保されている可能性があります。
NODE *pre;などはポインタです。よってメモリのアドレスが
入っているわけですが
そのアドレスをファイルに保存したとしても意味はありません。
次回起動したときそのアドレスが使用できるとは限りませんし
そもそもmallocでアドレスを指定して確保することはできません。

>テキストに落として再読み込みすることは考えたのですが
テキストである必要はありません。別にバイナリでもかまいませんが
フォーマットを決める必要はあります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!