Wechselpuffer mit 512Bytes beschreiben und auslesen
-
Hey Community,
bin neu hier im Forum und absoluter C-Neulung (E-Technik SEM 6). Habe nun folgendes Problem, ich würde gerne einen Wechselpuffer aufsetzen mit der Größe von 512Bytes. Das ganze müsste ja einfach als array funktionieren, oder?
das wäre dann:
char WP_A [512]; (Zyklus A)
char WP_B [512]; (ZyklusDie 512Bytes werden aber nicht zwingend gebraucht. Dh. die Puffer können auch mal nur 450Bytes groß sein und sollen in diesem Fall beim Auslesen auch nur die tatsächlich enthaltenen Bytes auslesen und nicht IMMER die 512Bytes.
Da die Fülldaten nur immer 1 Byte umfassen, müssen bestimmte Daten in Form von Variablen byteweise in WP_A reingeschrieben werden(Zyklus A) und im nächsten Zyklus byteweise ausgelesen werden (Zyklus B).
Wie realisier ich denn diese beiden Funtionen unter Berücksichtigung, dass die Länge des Puffers dynamisch ist? Mir fehlt gerade jeglicher Ansatz...
Danke für eure Zeit:)
Grüße Martin
-
Wie realisier ich denn diese beiden Funtionen unter Berücksichtigung, dass die Länge des Puffers dynamisch ist?
Du speicherst einfach die Laenge der Daten in den jeweiligen Puffern. D.h. der Puffer ist statisch, aber du kannst die Menge an auszulesenden Daten selbst bestimmen.
-
So ähnlich habe ich mir das auch gedacht, aber woher weiß die nächste Variable, wo der nächste freie Platz im Array ist?
Weiß gerade einfach nicht weiter..
-
Das steht dann in einer extra Variable. Z.B:
int WP_A_len, WP_B_len;
Wenn es um Strings geht (keine Binärdaten), kannst du natürlich auch die '\0' als Endekennung nehmen.