Ako kopírovať polia pomocou memmove() v programovaní C

Ako Kopirovat Polia Pomocou Memmove V Programovani C



Polia sú základným prvkom v programovacom jazyku C, ktorý umožňuje programátorovi uložiť množstvo položiek rovnakého dátového typu do jednej premennej. Sú chvíle, keď programátor môže potrebovať replikovať obsah jedného poľa do druhého.

Čo je funkcia memmove().

Funkcia knižnice C memmove() sa používa na kopírovanie určitého počtu bajtov z jednej adresy pamäte na druhú. Vzhľadom na to, že nie je ovplyvnený prekrývajúcimi sa oblasťami údajov, je to efektívna a produktívna technika kopírovania údajov. Pri použití memmove() Ak chcete skopírovať pole, je potrebné mať na pamäti niekoľko vecí. Funkcia musí najprv dostať dva ukazovatele, jeden predstavuje umiestnenie zdrojovej pamäte a druhý miesto cieľovej pamäte. Musí byť špecifikované aj množstvo bajtov, ktoré chcete skopírovať zo zdroja do cieľa.

The memmove() metóda je flexibilná funkcia, ktorá dokáže spracovať prekrývajúce sa zdroje a kopírovať dáta v ľubovoľnom poradí odkiaľkoľvek v pamäti. Jedinou nevýhodou je, že to trvá trochu dlhšie ako iné spôsoby kopírovania, ako sú memcpy().







Ako kopírovať polia pomocou memmove() v programovaní C

The memmove() funkcia je definovaná v knižnica a má syntax:



neplatné * memmove ( neplatné * začať , konšt neplatné * src , size_t n ) ;

Ukazovateľ void* dest určuje cieľové pole, do ktorého sa skopíruje obsah zdrojového poľa. Ukazovateľ na zdrojové pole, ktoré chceme skopírovať, je const void* src . Počet bajtov, ktoré chceme skopírovať zo zdrojového poľa do cieľového poľa, je určený argumentom size_t n .



Pozrite sa napríklad na nasledujúci riadok kódu:





#include

#include

int Hlavná ( ) {

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

int cieľové_pole [ 5 ] = { 0 } ;

size_t veľkosť = veľkosť ( source_array ) ;

memmove ( cieľové_pole , source_array , veľkosť ) ;

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

printf ( '%d' , cieľové_pole [ i ] ) ;

}

vrátiť 0 ;

}

Zdrojové pole a cieľové pole sú najskôr definované v kóde vyššie. Cieľové pole je spočiatku prázdne, ale zdrojové pole má prvky 1 až 5. The veľkosť() Operátor sa potom použije na určenie veľkosti zdrojového poľa a výsledok sa uloží do premennej size. Obsah zdrojového poľa sa skopíruje do cieľového poľa.

Výkon



Záver

Programovací jazyk C ponúka efektívny a spoľahlivý spôsob kopírovania polí pomocou memmove() funkciu. Jeho všestrannosť pochádza z jeho schopnosti zvládnuť prekrývajúcu sa pamäť a vďaka jeho priamej syntaxi ho môže použiť každý projekt v jazyku C.