Sådan kopieres arrays med memmove() i C-programmering

Sadan Kopieres Arrays Med Memmove I C Programmering



Arrays er et grundlæggende element i C-programmeringssproget, som gør det muligt for en programmør at gemme adskillige elementer af samme datatype i en enkelt variabel. Der er tidspunkter, hvor en programmør muligvis skal kopiere indholdet af et array til et andet.

Hvad er memmove()-funktionen

C-biblioteksfunktionen memmove() bruges til at kopiere et bestemt antal bytes fra en hukommelsesadresse til en anden. På grund af det faktum, at det er upåvirket af overlappende dataområder, er det en effektiv og produktiv teknik til at kopiere data. Ved brug memmove() for at kopiere et array, er der et par ting, du skal huske på. Funktionen skal først gives to pointere, den ene repræsenterer kildehukommelsesplaceringen og den anden destinationshukommelsesplaceringen. Mængden af ​​bytes, som du vil kopiere fra kilden til destinationen, skal også angives.

Det memmove() metode er en fleksibel funktion, der kan håndtere overlappende kilder og kopiere data i enhver rækkefølge fra hvor som helst i hukommelsen. Den eneste ulempe er, at det tager lidt længere tid end andre kopieringsmetoder som memcpy().







Sådan kopieres arrays med memmove() i C-programmering

Det memmove() funktion er defineret i bibliotek og har syntaksen:



ugyldig * memmove ( ugyldig * Start , konst ugyldig * src , størrelse_t n ) ;

Pointeren ugyldig* dest angiver destinationsmatrixen, hvortil indholdet af kildearrayet vil blive kopieret. Markøren til det kildearray, som vi vil kopiere, er const ugyldig* src . Antallet af bytes, som vi ønsker at kopiere fra kildearrayet til destinationsarrayet, er angivet af argumentet størrelse_t n .



Tag et kig på følgende kodelinje, for eksempel:





#include

#include

int vigtigste ( ) {

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

int destination_array [ 5 ] = { 0 } ;

størrelse_t størrelse = størrelse på ( source_array ) ;

memmove ( destination_array , source_array , størrelse ) ;

til ( int jeg = 0 ; jeg < 5 ; jeg ++ ) {

printf ( '%d' , destination_array [ jeg ] ) ;

}

Vend tilbage 0 ;

}

Kildearrayet og destinationsarrayet defineres først i koden ovenfor. Destinationsarrayet er oprindeligt tomt, men kildearrayet har elementerne 1 til 5. The størrelse på () operatoren bruges derefter til at bestemme størrelsen af ​​kildearrayet, og resultatet gemmes i størrelsesvariablen. Kildearrayets indhold kopieres over til destinationsarrayet.

Produktion



Konklusion

C-programmeringssproget tilbyder en effektiv og pålidelig måde at kopiere arrays med memmove() fungere. Dens alsidighed kommer fra dens evne til at håndtere overlappende hukommelse, og på grund af dens ligetil syntaks kan ethvert C-projekt bruge det.