Array kopieren (C)

Gast #829951
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 !
#829957
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 ) );

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren