Array kopieren (C)

Gast #829951
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 !
Gast #829954
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.
#829957
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.