Hva er memmove()-funksjonen
C-biblioteksfunksjonen memmove() brukes til å kopiere et visst antall byte fra en minneadresse til en annen. På grunn av det faktum at det er upåvirket av overlappende dataområder, er det en effektiv og produktiv teknikk for å kopiere data. Når du bruker memmove() for å kopiere en matrise, er det noen ting du må huske på. Funksjonen må først gis to pekere, den ene representerer kildeminnet og den andre destinasjonsminnet. Mengden byte du vil kopiere fra kilden til destinasjonen må også spesifiseres.
De memmove() metoden er en fleksibel funksjon som kan håndtere overlappende kilder og kopiere data i hvilken som helst rekkefølge fra hvor som helst i minnet. Den eneste ulempen er at det tar litt lengre tid enn andre kopieringsmetoder som memcpy().
Hvordan kopiere matriser med memmove() i C-programmering
De memmove() funksjonen er definert i
tomrom * memmove ( tomrom * start , konst tomrom * src , størrelse_t n ) ;
Pekeren ugyldig* dest spesifiserer målmatrisen, som innholdet i kildematrisen skal kopieres til. Pekeren til kildematrisen som vi ønsker å kopiere er const void* src . Antall byte som vi ønsker å kopiere fra kildematrisen til målmatrisen er spesifisert av argumentet størrelse_t n .
Ta en titt på følgende kodelinje, for eksempel:
#include
#include
int hoved- ( ) {
int source_array [ ] = { 1 , 2 , 3 , 4 , 5 } ;
int destination_array [ 5 ] = { 0 } ;
størrelse_t størrelse = størrelsen av ( source_array ) ;
memmove ( destination_array , source_array , størrelse ) ;
til ( int Jeg = 0 ; Jeg < 5 ; Jeg ++ ) {
printf ( '%d' , destination_array [ Jeg ] ) ;
}
komme tilbake 0 ;
}
Kildematrisen og destinasjonsmatrisen er først definert i koden ovenfor. Destinasjonsmatrisen er i utgangspunktet tom, men kildematrisen har elementene 1 til 5. The størrelsen av() operator brukes deretter til å bestemme størrelsen på kildematrisen, og resultatet lagres i størrelsesvariabelen. Kildematrisens innhold kopieres over til målmatrisen.
Produksjon
Konklusjon
C-programmeringsspråket tilbyr en effektiv og pålitelig måte å kopiere arrays med memmove() funksjon. Dens allsidighet kommer fra dens evne til å håndtere overlappende minne, og på grunn av dens enkle syntaks kan ethvert C-prosjekt bruke det.