Arrays kopiëren met memmove() in C-programmering

Arrays Kopieren Met Memmove In C Programmering



Arrays zijn een basiselement in de programmeertaal C, waarmee een programmeur meerdere items van hetzelfde gegevenstype in één variabele kan opslaan. Soms moet een programmeur de inhoud van de ene array naar de andere repliceren.

Wat is de memmove()-functie

De C-bibliotheekfunctie memove() wordt gebruikt om een ​​bepaald aantal bytes van het ene geheugenadres naar het andere te kopiëren. Omdat het niet wordt beïnvloed door overlappende gegevensgebieden, is het een effectieve en productieve techniek voor het kopiëren van gegevens. Tijdens gebruik memove() om een ​​array te kopiëren, zijn er een paar dingen waarmee u rekening moet houden. De functie moet eerst twee pointers krijgen, één die de brongeheugenlocatie vertegenwoordigt en de andere de bestemmingsgeheugenlocatie. Het aantal bytes dat u van de bron naar de bestemming wilt kopiëren, moet ook worden opgegeven.

De memove() methode is een flexibele functie die overlappende bronnen kan verwerken en gegevens in elke willekeurige volgorde kan kopiëren vanaf elke plek in het geheugen. Het enige nadeel is dat het iets langer duurt dan bij andere kopieermethoden memcpy().







Arrays kopiëren met memmove() in C-programmering

De memove() functie is gedefinieerd in de bibliotheek en heeft de syntaxis:



leegte * memmove ( leegte * begin , const leegte * src , maat_t N ) ;

De wijzer leeg* bestem specificeert de doelarray waarnaar de inhoud van de bronarray wordt gekopieerd. De aanwijzer naar de bronarray die we willen kopiëren is const leeg* src . Het aantal bytes dat we willen kopiëren van de bronarray naar de doelarray wordt opgegeven door het argument maat_t n .



Kijk bijvoorbeeld eens naar de volgende regel code:





#include

#include

int voornaamst ( ) {

int bron_array [ ] = { 1 , 2 , 3 , 4 , 5 } ;

int bestemming_array [ 5 ] = { 0 } ;

maat_t maat = De grootte van ( bron_array ) ;

memmove ( bestemming_array , bron_array , maat ) ;

voor ( int i = 0 ; i < 5 ; i ++ ) {

printf ( '%D ' , bestemming_array [ i ] ) ;

}

opbrengst 0 ;

}

De bronarray en doelarrayarrays worden eerst gedefinieerd in de bovenstaande code. De doelarray is aanvankelijk leeg, maar de bronarray heeft elementen 1 tot en met 5. De De grootte van() operator wordt vervolgens gebruikt om de grootte van de bronarray te bepalen en het resultaat wordt opgeslagen in de groottevariabele. De inhoud van de bronarray wordt gekopieerd naar de doelarray.

Uitgang



Conclusie

De programmeertaal C biedt een effectieve en betrouwbare manier om arrays te kopiëren met de memove() functie. Zijn veelzijdigheid komt voort uit zijn vermogen om met overlappend geheugen om te gaan, en vanwege zijn ongecompliceerde syntaxis kan elk C-project het gebruiken.