Kuidas kopeerida massiive memmove() abil C-programmeerimises

Kuidas Kopeerida Massiive Memmove Abil C Programmeerimises



Massiivid on programmeerimiskeele C põhielement, mis võimaldab programmeerijal salvestada ühte muutujasse palju sama tüüpi andmetüüpe. Mõnikord võib programmeerijal olla vaja ühe massiivi sisu teiseks kopeerida.

Mis on funktsioon memmove()?

C raamatukogu funktsioon memmove () kasutatakse teatud arvu baitide kopeerimiseks ühelt mäluaadressilt teisele. Kuna seda ei mõjuta kattuvad andmealad, on see tõhus ja produktiivne andmete kopeerimise tehnika. Kasutamisel memmove () massiivi kopeerimiseks tuleb meeles pidada mõnda asja. Funktsioonile tuleb esmalt anda kaks osutit, millest üks tähistab lähtemälu asukohta ja teine ​​sihtmälu asukohta. Samuti tuleb määrata baitide kogus, mida soovite lähtest sihtkohta kopeerida.

The memmove () meetod on paindlik funktsioon, mis suudab käsitleda kattuvaid allikaid ja kopeerida andmeid suvalises järjekorras kõikjalt mälust. Ainus puudus on see, et see võtab veidi kauem aega kui muud kopeerimismeetodid, näiteks memcpy().







Kuidas kopeerida massiive memmove() abil C-programmeerimises

The memmove () funktsioon on määratletud raamatukogu ja sellel on süntaks:



tühine * memmove ( tühine * alustada , konst tühine * src , suurus_t n ) ;

Osuti tühi* dest määrab sihtmassiivi, kuhu lähtemassiivi sisu kopeeritakse. Osuti lähtemassiivile, mida tahame kopeerida, on const tühi* src . Argumendiga määratakse baitide arv, mida tahame lähtemassiivist sihtmassiivi kopeerida suurus_t n .



Vaadake näiteks järgmist koodirida:





#include

#include

int peamine ( ) {

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

int sihtkoha_massiiv [ 5 ] = { 0 } ;

suurus_t suurus = suurus ( allika_massiiv ) ;

memmove ( sihtkoha_massiiv , allika_massiiv , suurus ) ;

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

printf ( '%d' , sihtkoha_massiiv [ i ] ) ;

}

tagasi 0 ;

}

Lähtemassiivi ja sihtkoha massiivi massiivid on kõigepealt määratletud ülaltoodud koodis. Sihtmassiivi on algselt tühi, kuid lähtemassiivis on elemente 1 kuni 5 suurus() Seejärel kasutatakse lähtemassiivi suuruse määramiseks operaatorit ja tulemus salvestatakse suuruse muutujasse. Lähtemassiivi sisu kopeeritakse sihtmassiivi.

Väljund



Järeldus

Programmeerimiskeel C pakub tõhusat ja töökindlat viisi massiivide kopeerimiseks memmove () funktsiooni. Selle mitmekülgsus tuleneb võimest käsitleda kattuvat mälu ja selle lihtsa süntaksi tõttu saab seda kasutada iga C-projekt.