Kako kopirati nize z memmove() v programiranju C

Kako Kopirati Nize Z Memmove V Programiranju C



Nizi so osnovni element v programskem jeziku C, ki programerju omogoča shranjevanje številnih postavk istega podatkovnega tipa v eno spremenljivko. Obstajajo trenutki, ko mora programer ponoviti vsebino ene matrike v drugo.

Kaj je funkcija memmove().

Funkcija knjižnice C memmove() se uporablja za kopiranje določenega števila bajtov iz enega pomnilniškega naslova v drugega. Ker nanj ne vplivajo prekrivajoča se podatkovna področja, je to učinkovita in produktivna tehnika kopiranja podatkov. Pri uporabi memmove() Če želite kopirati matriko, morate upoštevati nekaj stvari. Funkciji je treba najprej dati dva kazalca, eden predstavlja izvorno pomnilniško lokacijo, drugi pa ciljno pomnilniško lokacijo. Določiti je treba tudi količino bajtov, ki jih želite kopirati iz vira na cilj.

The memmove() metoda je prilagodljiva funkcija, ki lahko obravnava prekrivajoče se vire in kopira podatke v poljubnem vrstnem redu od koder koli v pomnilniku. Edina pomanjkljivost je, da traja nekoliko dlje kot drugi načini kopiranja, npr memcpy().







Kako kopirati nize z memmove() v programiranju C

The memmove() funkcija je definirana v knjižnica in ima sintakso:



praznina * memmove ( praznina * začetek , konst praznina * src , velikost_t n ) ;

Kazalec praznina* cilj določa ciljno matriko, v katero bo kopirana vsebina izvorne matrike. Kazalec na izvorno matriko, ki jo želimo kopirati, je const praznina* src . Število bajtov, ki jih želimo kopirati iz izvorne matrike v ciljno matriko, je določeno z argumentom velikost_t n .



Oglejte si na primer naslednjo vrstico kode:





#include

#include

int glavni ( ) {

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

int ciljna_matrika [ 5 ] = { 0 } ;

velikost_t velikost = sizeof ( izvorna_matrika ) ;

memmove ( ciljna_matrika , izvorna_matrika , velikost ) ;

za ( int jaz = 0 ; jaz < 5 ; jaz ++ ) {

printf ( '%d' , ciljna_matrika [ jaz ] ) ;

}

vrnitev 0 ;

}

Izvorni niz in ciljni nizi so najprej definirani v zgornji kodi. Ciljna matrika je sprva prazna, izvorna matrika pa ima elemente od 1 do 5. The sizeof() se nato uporabi za določitev velikosti izvorne matrike, rezultat pa se shrani v spremenljivko velikosti. Vsebina izvorne matrike se prekopira v ciljno matriko.

Izhod



Zaključek

Programski jezik C ponuja učinkovit in zanesljiv način za kopiranje nizov z memmove() funkcijo. Njegova vsestranskost izhaja iz zmožnosti obvladovanja prekrivajočega se pomnilnika, zaradi njegove preproste sintakse pa ga lahko uporablja kateri koli projekt C.