Mikä on memmove()-funktio
C-kirjastotoiminto muistaa () käytetään kopioimaan tietty määrä tavuja muistiosoitteesta toiseen. Koska päällekkäiset tietoalueet eivät vaikuta siihen, se on tehokas ja tuottava tekniikka tietojen kopioimiseen. Käytettäessä muistaa () Jos haluat kopioida taulukon, on muutamia asioita, jotka on pidettävä mielessä. Funktiolle on ensin annettava kaksi osoitinta, joista toinen edustaa lähdemuistipaikkaa ja toinen kohdemuistipaikkaa. On myös määritettävä tavumäärä, jonka haluat kopioida lähteestä kohteeseen.
The muistaa () menetelmä on joustava toiminto, joka voi käsitellä päällekkäisiä lähteitä ja kopioida tietoja missä tahansa järjestyksessä mistä tahansa muistista. Ainoa haittapuoli on, että se kestää hieman kauemmin kuin muut kopiointitavat, kuten memcpy().
Kuinka kopioida taulukoita memmove():lla C-ohjelmoinnissa
The muistaa () toiminto on määritelty kohdassa
mitätön * muistaa ( mitätön * alkaa , konst mitätön * src , koko_t n ) ;
Osoitin void* dest määrittää kohdetaulukon, johon lähdetaulukon sisältö kopioidaan. Osoitin lähdetaulukkoon, jonka haluamme kopioida, on const void* src . Argumentti määrittää niiden tavujen määrän, jotka haluamme kopioida lähdetaulukosta kohdetaulukkoon koko_t n .
Katso esimerkiksi seuraavaa koodiriviä:
#include
#include
int pää ( ) {
int source_array [ ] = { 1 , 2 , 3 , 4 , 5 } ;
int kohdejoukko [ 5 ] = { 0 } ;
koko_t koko = koko ( source_array ) ;
muistaa ( kohdejoukko , source_array , koko ) ;
varten ( int i = 0 ; i < 5 ; i ++ ) {
printf ( '%d' , kohdejoukko [ i ] ) ;
}
palata 0 ;
}
Lähde- ja kohdetaulukkotaulukot määritellään ensin yllä olevassa koodissa. Kohdetaulukko on aluksi tyhjä, mutta lähdetaulukossa on elementtejä 1–5 koko() operaattoria käytetään sitten määrittämään lähdetaulukon koko, ja tulos tallennetaan kokomuuttujaan. Lähdetaulukon sisältö kopioidaan kohdetaulukkoon.
Lähtö
Johtopäätös
C-ohjelmointikieli tarjoaa tehokkaan ja luotettavan tavan kopioida taulukoita muistaa () toiminto. Sen monipuolisuus johtuu sen kyvystä käsitellä päällekkäistä muistia, ja sen suoraviivaisen syntaksin ansiosta mikä tahansa C-projekti voi käyttää sitä.