Forum: Mikrocontroller und Digitale Elektronik Array kopieren (C)


von Steht im Pass (Gast)


Lesenswert?

Hallo ..

ich bin noch nicht so richtig Fit in C. Habe jetzt folgende 
Problematik..

wenn ich zwei Arrays habe vom Typ char
1
char a[8]
2
char b[32]
dann kann ich den Inhalt von a nach b an Stelle 10 z.B. so kopieren..
1
memcpy(&b[10],a,8);

jetzt habe ich allerdings folgende Array .
1
short a[4]
2
char b[32]
und möchte die Daten analog zu oben kopieren. Klar, könnte ich mit 
SChleife, AND und Schiebeoperationen machen. Aber muss odhc einen 
einfacheren Weg geben ...

Danke !

von Sven P. (Gast)


Lesenswert?

Kannst trotzdem memcpy benutzen, musst nur aufpassen, wie viele Bytes 
(short müssten zwei Bytes sein, oder?) du kopierst und nachher musst du 
die Anordnung der Bytes beachten.

von Karl H. (kbuchegg)


Lesenswert?

Steht im Pass wrote:
> und möchte die Daten analog zu oben kopieren. Klar, könnte ich mit
> SChleife, AND und Schiebeoperationen machen. Aber muss odhc einen
> einfacheren Weg geben ...

Der springende Punkt ist, dass memcpy einfach nur Bytes von A nach
B kopiert. memcpy ist es völlig egal zu wem dieser Speicher gehört.
Alles was du tun musst, ist also dem memcpy zu sagen: Von hier nimmst
du so und so viele Bytes und kopierst sie dort hin.

Von hier ...    das ist bei dir das short Array a
Nach dahin ...  das ist bei dir das char Array b und zwar dort
                beginnend beim 10. Index in diesem Array
und wieviel ... du möchtest 4 short int kopieren. Das sind dann
                4 * sizeof( short ) Bytes

  memcpy( &b[10], a, 4 * sizeof( short ) );

von Steht im Pass (Gast)


Lesenswert?

Super danke!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.