Hogyan másoljunk tömböket a memmove() segítségével a C programozásban

Hogyan Masoljunk Tomboket A Memmove Segitsegevel A C Programozasban



A tömbök a C programozási nyelv alapvető elemei, amelyek lehetővé teszik a programozó számára, hogy számos azonos adattípusú elemet egyetlen változóban tároljon. Előfordulhat, hogy a programozónak át kell replikálnia az egyik tömb tartalmát a másikba.

Mi az a memmove() függvény

A C könyvtár függvény memmove() bizonyos számú bájt átmásolására szolgál egyik memóriacímről a másikra. Tekintettel arra, hogy nem érintik az átfedő adatterületek, hatékony és eredményes adatmásolási technika. Használat során memmove() tömb másolásához néhány dolgot szem előtt kell tartani. A függvénynek először két mutatót kell adni, az egyik a forrás memória helyét, a másik pedig a cél memória helyét. Meg kell adni a forrásból a célba másolni kívánt bájtok mennyiségét is.

A memmove() A metódus egy rugalmas funkció, amely képes kezelni az átfedő forrásokat és tetszőleges sorrendben másolni az adatokat a memóriából. Az egyetlen hátránya, hogy egy kicsit tovább tart, mint más másolási módszerek, mint például memcpy().







Hogyan másoljunk tömböket a memmove() segítségével a C programozásban

A memmove() funkciót a könyvtár és a következő szintaxissal rendelkezik:



üres * memmove ( üres * Rajt , const üres * src , size_t n ) ;

A mutató void* dest megadja a céltömböt, amelybe a forrástömb tartalma másolódik. A másolni kívánt forrástömbre mutató mutató a const érvénytelen* src . A forrástömbből a céltömbbe másolni kívánt bájtok számát az argumentum határozza meg méret_t n .



Nézze meg például a következő kódsort:





#include

#include

int fő- ( ) {

int forrás_tömb [ ] = { 1 , 2 , 3 , 4 , 5 } ;

int cél_tömb [ 5 ] = { 0 } ;

size_t méret = mérete ( forrás_tömb ) ;

memmove ( cél_tömb , forrás_tömb , méret ) ;

számára ( int én = 0 ; én < 5 ; én ++ ) {

printf ( '%d' , cél_tömb [ én ] ) ;

}

Visszatérés 0 ;

}

A forrástömb és a céltömb tömbjeit először a fenti kód határozza meg. A céltömb kezdetben üres, de a forrástömb 1-től 5-ig terjedő elemekkel rendelkezik mérete() operátort használunk a forrástömb méretének meghatározására, és az eredményt a rendszer a méretváltozóba menti. A forrástömb tartalma átmásolódik a céltömbbe.

Kimenet



Következtetés

A C programozási nyelv hatékony és megbízható módszert kínál a tömbök másolására a memmove() funkció. Sokoldalúsága abból fakad, hogy képes kezelni az átfedő memóriákat, és az egyszerű szintaxis miatt bármely C projekt használhatja.