Forum: Compiler & IDEs memcpy: an bestimmte Stelle im Array schreiben


von Markus (Gast)


Lesenswert?

Hallo zusammen,

ich möchte in einem großen Array mit memcpy an eine bestimmte Stelle 
schreiben.


Unbedarft wie ich bin, habe ich folgenden Befehl versucht:

memcpy(BWT_to_LZSS_array[data_BTW_LZSS_counter], data, BLOCK_SIZE);


Leider funktioniert das nicht. Ich bekomme eine Warnung:

warning C4022: 'memcpy' : pointer mismatch for actual parameter 1


Kann mir jemand sagen, ob es überhaupt eine Lösung mit memcpy für mein 
Problem gibt?


Danke & Gruß
Markus

von Klaus W. (mfgkw)


Lesenswert?

Ja.

von Floh (Gast)


Lesenswert?

Zeig mal ein bisschen mehr Code. GRad die Deklarationen sind 
interessant.
Ins Blaue hinein würd ich sagen, da fehlt ein & vor dem ersten 
Parameter.
:-)

von Klaus W. (mfgkw)


Lesenswert?

Die Frage ist, wie wahrscheinlich es ist, daß du die richtige
Lösung bekommst.

Die Chancen dafür steigen mit einer vernünftigen Beschreibung.
Deine Frage fällt nicht darunter.
Insbesondere fehlt die Deklaration von BWT_to_LZSS_array.
Wenn ich jetzt mal spekuliere, daß BWT_to_LZSS_array das
betreffende Feld ist und data_BTW_LZSS_counter der Offset,
an dem in das Feld geschrieben werden soll, dann hilft
vielleicht ein Adreßoperator davor.
Also:
1
   memcpy( &BWT_to_LZSS_array[data_BTW_LZSS_counter], data, BLOCK_SIZE );

Oder alternativ:
1
   memcpy( BWT_to_LZSS_array + data_BTW_LZSS_counter, data, BLOCK_SIZE );

von Markus (Gast)


Lesenswert?

Danke für die Hilfe.

Habe vor zwei Minuten die alternative Lösung von Walter gefunden 
(ausprobieren) und wollte gerade hier Bescheid geben.

Gruß
Markus

von Klaus W. (mfgkw)


Lesenswert?

ah, dann schönen Gruß an Walter!

von Markus (Gast)


Lesenswert?

uuups - sorry, hab grad ne mail an einen Walter geschrieben und war mit 
meinen Gedanken woanders.

Danke für Deine Hilfe Klaus und entschuldige bitte den Namenswechsel. 
:-)

Gruß
Markus

von Klaus W. (mfgkw)


Lesenswert?

:-)

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.