|
noch ne Frage zu structs.....
#384805
10/08/11 17:33
10/08/11 17:33
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
OP
User
|
OP
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
hey, ich bin grad auf Fehlersuche und hab ne Frage: Die Speicheradresse eines Structs kann man ja auch in einer int abspeichern, z.B einem entityskill oder einem array. Wenn ich nun an anderer Stelle an den Struct ran muss, brauch ich, um im Struct Sachen zu ändern, ja wieder seine Adresse - wie hole ich die mir? Ich habe es foglender maßen gemacht, bin mir abe rnicht sicher ob das geht:
gegenstand* zu_speichernden_gegenstand = (gegenstand*) inventar_platz[i];
file_str_write(filehandle,zu_speichernden_gegenstand->str_modell);
// ... weitere file_str_write-Anweisungen
Direkt
file_str_write(filehandle,(gegenstand*) inventar_platz[i]->str_modell);
mag er nicht. Reicht es, wenn ich das wie im oberen Code-block mache? Oder kann das später Fehler geben, weil ich vorher kein sys_malloc benutzt habe? Aber eig. brauch ich doch kein sys_malloc, weil ich den einen struct nicht in einen neuen kopieren, sondern lediglich die Adresse als struct haben will, die ich dann per file_str_write wieder weiterverwerten kann. vielen Danke erstmal fürs Durchlesen :-)
Last edited by JoGa; 10/08/11 17:34.
|
|
|
Re: noch ne Frage zu structs.....
[Re: JoGa]
#384808
10/08/11 18:42
10/08/11 18:42
|
Joined: Nov 2007
Posts: 2,568 Germany, BW, Stuttgart
MasterQ32
Expert
|
Expert
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
|
Hey Joga! Du kannst nicht einfach einen Structpointer in eine Datei schreiben. Das Programm liegt ja nach einem Neustart an einer völlig anderen Speicheradresse! 1. Du musst ein Struct in eine Datei speichern und nicht blos den Pointer . Geht eigentlich recht einfach. Jeden Teil des Structs in die Datei schreiben (jeden string, variable, what else) Um das Struct wieder zu laden, musst du es erst wider von hand erzeugen (sys_malloc) und die daten, die darin sein sollen, wieder aus einer datei lesen. Für ein Code-Beispiel bin ich jetzt zu faul, aber wenns ohne nicht geht, bekommste eines Gruß Felix
|
|
|
Re: noch ne Frage zu structs.....
[Re: MasterQ32]
#384810
10/08/11 19:00
10/08/11 19:00
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
OP
User
|
OP
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
äh, genauso mach ich es doch ;-) ich schreib den inhalt in ne Datei von strings, die im struct sind.
file_str_write(filehandle,zu_speichernden_gegenstand->str_modell);
das hier schreib ich in die datei. Das sind strings. Nicht die Speicheradresse ;-) Trotzdem Danke für deinen Tipp! Vielleicht war meine Frage zu ungenau. Ich wollte wissen, ob dies Zeile Code legitim ist:
gegenstand* zu_speichernden_gegenstand = (gegenstand*) inventar_platz[i];
mit der ich einen generierten Struct, dessen Adresse ich in einem array abgespeichert hatte, so wieder als Pointer "addressiert" bekommen kann, um ihn dann weiter zu verwenden und abzuspeichern.
Last edited by JoGa; 10/08/11 19:21.
|
|
|
Re: noch ne Frage zu structs.....
[Re: MasterQ32]
#384813
10/08/11 19:49
10/08/11 19:49
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
OP
User
|
OP
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
aber wenn ich dann
file_str_write(filehandle,(gegenstand*) inventar_platz[i]->str_modell);
schreiben will (weil für den file_str_write-Befehl brauch ichs ja, will es nicht geschluckt werden :-/
|
|
|
[solved] Re: noch ne Frage zu structs.....
[Re: MasterQ32]
#384815
10/08/11 20:02
10/08/11 20:02
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
OP
User
|
OP
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
Fehler wurde durch falsches benutzen von STRING-Pointern und _char- funktion verursacht.
Last edited by JoGa; 10/08/11 22:33.
|
|
|
|