G
DJohn@work schrieb:
guni schrieb:
dazu müssen die Elemente dieser struct ja alle eine fixlänge haben.
Das glaube ich nicht. Zumindest brauchst Du kein Auffüllen dazu.
wie soll es dann funktionieren?
wenn ich die Datei später wieder einlese will ich ja wissen, wie groß die jeweiligen Attribute meiner Struct sind, damit ich dann immer mit fseek auf die richtige Position springen kann ...
oder gibt es da eine schönere Lösung?!
Wenn ich kein Auffüllen hernehm, dann hab ich das Problem, dass meine Strings zwar in die Datei geschrieben werden, aber nur mit der aktuellen und nicht mit der maximalen Länge ...
DJohn@work schrieb:
guni schrieb:
das komische is: sie funktioniert in der main,
Ich glaube nicht, das es in main funktioniert:
Zuerst: wo ist der Speicher für ret? Da fehlt ein new oder malloc vor dem strcpy!
ich hab es ausprobiert und es geht ...
ich programmier hauptsächlich in java und in perl; ich hab mir noch nie gedanken darüber gemacht, wo mein speicher ist
ok - wie hätte das ganze denn auszusehen in c?!
DJohn@work schrieb:
Zweitens: sizeof(text) macht sicher was ganz anderes als Du glaubst. Das gibt die Länge eines Zeigers in Byte an, nicht die Länge des Textes!
oh. dann hatte ich mit sizeof("text") wohl nur glück *gg*
DJohn@work schrieb:
Drittens: Wieso füllst Du die Leerzeichen in eine Kopie? Wenn man sich "person_speichern" ansieht, denke ich, Du wolltest p->vorname mit Leerzeichen auffüllen und nicht eine Kopie haben, die Du dann wieder wegwirfst.
eigentlich sollte da stehen auffuellen(p->vorname, 30);
das hat mir nur einen Fehler gegeben und jetzt dachte ich, schreib meine Funktion mal so wie in der main weil ich davon ausgegangen bin, dass sie dann funktionieren müsste (nachdem sie mir in der main mit gleichem Aufruf auch zurückgegben hat was ich erwartet habe ...)
na ja - da hab ich mich jedenfalls getäuscht ...
DJohn[/quote]