Cum să copiați matrice cu memmove() în programarea C

Cum Sa Copiati Matrice Cu Memmove In Programarea C



Matricele sunt un element de bază în limbajul de programare C, care permite unui programator să stocheze numeroase elemente de același tip de date într-o singură variabilă. Există momente când un programator poate avea nevoie să reproducă conținutul unei matrice în alta.

Ce este funcția memmove().

Funcția de bibliotecă C memmove() este folosit pentru a copia un anumit număr de octeți de la o adresă de memorie la alta. Datorită faptului că nu este afectat de suprapunerea zonelor de date, este o tehnică eficientă și productivă de copiere a datelor. Atunci când se utilizează memmove() pentru a copia o matrice, există câteva lucruri de reținut. Funcția trebuie să primească mai întâi doi indicatori, unul reprezentând locația de memorie sursă și celălalt locația de memorie de destinație. Trebuie specificată și cantitatea de octeți pe care doriți să-i copiați de la sursă la destinație.

The memmove() metoda este o funcție flexibilă care poate gestiona surse suprapuse și poate copia datele în orice ordine de oriunde în memorie. Singurul dezavantaj este că durează puțin mai mult decât alte metode de copiere precum memcpy().







Cum să copiați matrice cu memmove() în programarea C

The memmove() funcția este definită în <șir.h> bibliotecă și are sintaxa:



gol * memmove ( gol * start , const gol * src , dimensiune_t n ) ;

Indicatorul void* dest specifică matricea destinație, în care va fi copiat conținutul matricei sursă. Pointerul către matricea sursă pe care dorim să o copiem este const void* src . Numărul de octeți pe care dorim să îi copiem din matricea sursă în matricea destinație este specificat de argument dimensiune_t n .



Aruncă o privire la următoarea linie de cod, de exemplu:





#include

#include <șir.h>

int principal ( ) {

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

int matrice_destinație [ 5 ] = { 0 } ;

dimensiune_t mărimea = dimensiunea ( matrice_sursă ) ;

memmove ( matrice_destinație , matrice_sursă , mărimea ) ;

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

printf ( „%d” , matrice_destinație [ i ] ) ;

}

întoarcere 0 ;

}

Matricea sursă și matricea destinație sunt mai întâi definite în codul de mai sus. Matricea de destinație este inițial goală, dar matricea sursă are elementele de la 1 la 5 dimensiunea() operator este apoi folosit pentru a determina dimensiunea matricei sursă, iar rezultatul este salvat în variabila dimensiune. Conținutul matricei sursă este copiat în matricea de destinație.

Ieșire



Concluzie

Limbajul de programare C oferă o modalitate eficientă și sigură de a copia matrice cu memmove() funcţie. Versatilitatea sa provine din capacitatea sa de a gestiona suprapunerea memoriei și, datorită sintaxei sale simple, orice proiect C o poate folosi.