Ich bin etwas verwirrt über die Parameter für die Funktion memcpy . Wenn ich
habe %Vor% und ich möchte die Elemente in arr
in newarr
kopieren mit memcopy
,
Wie mache ich das?
Die Reihenfolge ist also memcpy(destination, source, number_of_bytes)
.
Daher können Sie die alten Daten am Anfang von newarr
mit
oder am Ende mit
%Vor% Da Sie den Datentyp von arr
und newarr
kennen, funktioniert die Zeigerarithmetik. Aber innerhalb von memcpy
kennt sie den Typ nicht, also muss sie die Anzahl der Bytes wissen.
Eine andere Alternative ist std::copy
oder std::copy_n
.
Für grundlegende Typen wie int
funktioniert die bitweise Kopie von memcpy
einwandfrei. Für tatsächliche Klasseninstanzen müssen Sie std::copy
(oder copy_n
) verwenden, damit der benutzerdefinierte Zuweisungsoperator der Klasse verwendet wird.