memcpy in der richtigen Länge

chrisisdonut

Grünschnabel
Erstmal ein freundliches hallo,
bin nicht nur neu hier im Forum, sondern auch was das Programmieren in C angeht. Also bitte nicht gleich losprügeln.... :-)

Zu meinem Problem:

Möchte mit fogendem memcpy ein char-Array (String) auf einen anderen kopieren. Dies ganze soll in einer bestimmten Länge passieren. Die besagte Länge bekomme ich vom Leser als int-Wert übergeben. So sieht das ganze dann aus:

int P_BWVB_SATZ_SL;

memcpy(kbtogui_all->pbwvb_r.P_BWVB_SATZ01, pbwvb->p_bwvb_satz.P_BWVB_SATZ01,
sizeof(pbwvb->P_BWVB_SATZ_SL));

Mein Problem liegt nun darin, dass nie die Anzahl an bytes lt. der Variablen, sondern nur die Anzahl an Bytes lt. int-Def. (4) kopiert werden. Ich hab das ganze auch schon in anderen variationen, auch ohne sizeof und auch mit Typumwandlung von int in char probiert, leider ohne brauchbarem Ergebnis.

Für Vorschläge bin ich echt dankbar!

Gruß
 
Hallo,

du musst die Variable schon direkt verwenden, sizeof liefert dir nur die Größe des von ihr allozierten Speichers, aber nicht ihren Wert. Was passiert denn, wenn du die Variable direkt verwendest? (da du schreibst, dass du es schon versucht hast)

Gruß
MCoder
 
Hallo MCoder,

Danke für die schnelle Antwort!

Ich bild mir ein, die Variante schon probiert zu haben, da dies ja eigentlich das logischste ist. Nachdem ich aber schon soviel rumprobiert habe, teste ich es einfach nochmal.

Melde mich dann wieder!

Gruß
chrisidonut
 
Zurück