Verwenden von memcpy in C ++

8

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 ,

%Vor%

Wie mache ich das?

    
DSP_Student 18.10.2013, 00:43
quelle

3 Antworten

21

Die Reihenfolge ist also memcpy(destination, source, number_of_bytes) .

Daher können Sie die alten Daten am Anfang von newarr mit

platzieren %Vor%

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 .

%Vor%

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.

    
Ben Voigt 18.10.2013, 00:48
quelle
1
%Vor%     
Pratap 17.03.2016 13:40
quelle
-6
%Vor%     
Atul Sharma 26.06.2015 06:17
quelle

Tags und Links