Jak kopírovat pole pomocí memmove() v programování C

Jak Kopirovat Pole Pomoci Memmove V Programovani C



Pole jsou základním prvkem v programovacím jazyce C, který umožňuje programátorovi uložit mnoho položek stejného datového typu do jediné proměnné. Jsou chvíle, kdy programátor může potřebovat replikovat obsah jednoho pole do druhého.

Co je funkce memmove().

Funkce knihovny C memmove() se používá ke zkopírování určitého počtu bajtů z jedné adresy paměti na druhou. Vzhledem k tomu, že není ovlivněn překrývajícími se datovými oblastmi, jde o efektivní a produktivní techniku ​​kopírování dat. Při použití memmove() Chcete-li zkopírovat pole, je třeba mít na paměti několik věcí. Funkce musí nejprve dostat dva ukazatele, z nichž jeden představuje umístění zdrojové paměti a druhý umístění cílové paměti. Musí být také specifikováno množství bajtů, které chcete zkopírovat ze zdroje do cíle.

The memmove() metoda je flexibilní funkce, která dokáže zpracovat překrývající se zdroje a kopírovat data v libovolném pořadí odkudkoli v paměti. Jedinou nevýhodou je, že to trvá o něco déle než jiné metody kopírování memcpy().







Jak kopírovat pole pomocí memmove() v programování C

The memmove() funkce je definována v <řetězec.h> knihovna a má syntaxi:



prázdnota * memmove ( prázdnota * Start , konst prázdnota * src , velikost_t n ) ;

Ukazatel prázdno* cíl určuje cílové pole, do kterého bude zkopírován obsah zdrojového pole. Ukazatel na zdrojové pole, které chceme zkopírovat, je const neplatný* src . Počet bajtů, které chceme zkopírovat ze zdrojového pole do cílového pole, je určen argumentem velikost_t n .



Podívejte se například na následující řádek kódu:





#include

#include <řetězec.h>

int hlavní ( ) {

int zdrojové_pole [ ] = { 1 , 2 , 3 , 4 , 5 } ;

int cílové_pole [ 5 ] = { 0 } ;

velikost_t velikost = velikost ( zdrojové_pole ) ;

memmove ( cílové_pole , zdrojové_pole , velikost ) ;

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

printf ( '%d' , cílové_pole [ i ] ) ;

}

vrátit se 0 ;

}

Zdrojové pole a cílové pole jsou nejprve definovány v kódu výše. Cílové pole je zpočátku prázdné, ale zdrojové pole má prvky 1 až 5. The velikost() operátor se pak použije k určení velikosti zdrojového pole a výsledek se uloží do proměnné size. Obsah zdrojového pole se zkopíruje do cílového pole.

Výstup



Závěr

Programovací jazyk C nabízí efektivní a spolehlivý způsob kopírování polí pomocí rozhraní memmove() funkce. Jeho všestrannost vychází z jeho schopnosti zvládnout překrývající se paměť a díky jeho přímočaré syntaxi jej může použít jakýkoli projekt v jazyce C.