Što je funkcija memmove().
Funkcija C knjižnice memmove() koristi se za kopiranje određenog broja bajtova s jedne memorijske adrese na drugu. Zbog činjenice da na njega ne utječu područja podataka koja se preklapaju, to je učinkovita i produktivna tehnika kopiranja podataka. Prilikom korištenja memmove() da biste kopirali niz, morate imati na umu nekoliko stvari. Funkciji se prvo moraju dati dva pokazivača, jedan predstavlja izvornu memorijsku lokaciju, a drugi odredišnu memorijsku lokaciju. Količina bajtova koju želite kopirati od izvora do odredišta također mora biti navedena.
The memmove() metoda je fleksibilna funkcija koja može rukovati preklapajućim izvorima i kopirati podatke bilo kojim redoslijedom s bilo kojeg mjesta u memoriji. Jedina mana je to što traje malo dulje od drugih metoda kopiranja kao što je memcpy().
Kako kopirati nizove pomoću memmove() u C programiranju
The memmove() funkcija je definirana u
poništiti * memmove ( poništiti * početak , konst poništiti * src , veličina_t n ) ;
Pokazivač praznina * odredište specificira odredišno polje u koje će se sadržaj izvornog polja kopirati. Pokazivač na izvorni niz koji želimo kopirati je const praznina* src . Broj bajtova koje želimo kopirati iz izvornog niza u odredišni niz određen je argumentom veličina_t n .
Na primjer, pogledajte sljedeći redak koda:
#include
#include
int glavni ( ) {
int izvorni_niz [ ] = { 1 , 2 , 3 , 4 , 5 } ;
int odredišni_niz [ 5 ] = { 0 } ;
veličina_t veličina = veličina ( izvorni_niz ) ;
memmove ( odredišni_niz , izvorni_niz , veličina ) ;
za ( int ja = 0 ; ja < 5 ; ja ++ ) {
printf ( '%d' , odredišni_niz [ ja ] ) ;
}
povratak 0 ;
}
Izvorni niz i nizovi odredišnog polja prvo su definirani u gornjem kodu. Odredišni niz je u početku prazan, ali izvorni niz ima elemente od 1 do 5. The veličina() operator se zatim koristi za određivanje veličine izvornog polja, a rezultat se sprema u varijablu veličine. Sadržaj izvornog niza kopira se u odredišni niz.
Izlaz
Zaključak
Programski jezik C nudi učinkovit i pouzdan način kopiranja nizova s memmove() funkcija. Njegova svestranost dolazi od njegove sposobnosti rukovanja memorijom koja se preklapa, a zbog svoje jednostavne sintakse, svaki C projekt ga može koristiti.