2017-01-26 3 views
1

Ich habe folgende Struktur in Datei:C verkettete Liste - Schreibzeiger

typedef struct transgressor 
{ 
    int priority; 
    Record record; 
    struct transgressor *next; 
    int position; 
    int hasNext; 
}Transgressor; 

ich es in Datei schreiben müssen. Problem ist mit struct transgressor *next Teil, weil es Zeiger ist. Wie kann ich es dereferenzieren, oder Struktur anders organisieren, so kann ich es schreiben und nach dem Lesen von Datei?

+0

Sie müssen es mit seinen Attributen eins nach dem anderen schreiben –

+0

Mögliches Duplikat von [So schreiben Sie ein verknüpftes Listenobjekt in eine Datei] (http://stackoverflow.com/questions/9854596/how-to-write-a- linked-list-object-to-a-file) – DyZ

+0

Sie können es schreiben, aber es wird keine Bedeutung für den Leser haben. (außer vielleicht für das Programm, das es geschrieben hat) – wildplasser

Antwort

0

Es hat keinen Sinn, den Zeiger auf die Datei zu speichern. Da Sie in Ihrer Struktur bereits eine position Variable haben, können Sie diese verwenden, um die Liste im Speicher neu zu erstellen, anstatt die Liste aus der Datei zu laden.

+0

Komplizierte mein Code ein wenig, aber ich habe es geschafft. – 5ar

0

Bevor Sie etwas in einer Datei speichern, sollten Sie (idealerweise als geschriebenes Dokument) das Format angeben, in dem die Daten in der Datei auf Byte-Ebene gespeichert werden. Verwenden Sie ein vorhandenes Dateiformat, wenn es ein geeignetes Format gibt, andernfalls müssen Sie Ihr eigenes entwerfen und spezifizieren.

Sobald Sie sich für das Format für die Daten auf der Byte-Ebene entschieden haben, schreiben Sie Code, um die Struktur in und aus diesem Format zu konvertieren. Was dieses Format auf die Festplatte. Lesen Sie dieses Format von der Festplatte.

Es gibt keine Abkürzungen, die nicht zu Schmerzen und Leiden führen.