Hvordan kopiere matriser med memmove() i C-programmering

Hvordan Kopiere Matriser Med Memmove I C Programmering



Arrays er et grunnleggende element i C-programmeringsspråket, som gjør det mulig for en programmerer å lagre flere elementer av samme datatype i en enkelt variabel. Det er tider når en programmerer kan trenge å replikere innholdet i en matrise til en annen.

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 bibliotek og har syntaksen:



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.