Paano Kopyahin ang mga Array gamit ang memmove() sa C Programming

Paano Kopyahin Ang Mga Array Gamit Ang Memmove Sa C Programming



Ang mga array ay isang pangunahing elemento sa C programming language, na nagbibigay-daan sa isang programmer na mag-imbak ng maraming item ng parehong uri ng data sa isang variable. May mga pagkakataon na maaaring kailanganin ng isang programmer na kopyahin ang mga nilalaman ng isang array sa isa pa.

Ano ang memmove() Function

Ang function ng C library memmove() ay ginagamit upang kopyahin ang isang tiyak na bilang ng mga byte mula sa isang memory address patungo sa isa pa. Dahil sa katotohanang hindi ito naaapektuhan ng magkakapatong na mga lugar ng data, isa itong mabisa at produktibong pamamaraan ng pagkopya ng data. Kapag gumagamit memmove() upang kopyahin ang isang array, may ilang bagay na dapat tandaan. Dapat munang bigyan ang function ng dalawang pointer, ang isa ay kumakatawan sa lokasyon ng pinagmulan ng memorya at ang isa ay ang lokasyon ng patutunguhan ng memorya. Dapat ding tukuyin ang dami ng mga byte na gusto mong kopyahin mula sa pinagmulan hanggang sa patutunguhan.

Ang memmove() Ang pamamaraan ay isang nababaluktot na function na maaaring humawak ng mga magkakapatong na mapagkukunan at kopyahin ang data sa anumang pagkakasunud-sunod mula sa kahit saan sa memorya. Ang tanging disbentaha ay medyo mas matagal kaysa sa iba pang mga paraan ng pagkopya tulad ng memcpy().







Paano Kopyahin ang mga Array gamit ang memmove() sa C Programming

Ang memmove() function ay tinukoy sa library at mayroong syntax:



walang bisa * memmove ( walang bisa * simulan , const walang bisa * src , laki_t n ) ;

Ang pointer void* dest tumutukoy sa hanay ng patutunguhan, kung saan makokopya ang mga nilalaman ng hanay ng pinagmulan. Ang pointer sa source array na gusto naming kopyahin ay const walang bisa* src . Ang bilang ng mga byte na gusto naming kopyahin mula sa source array hanggang sa destination array ay tinukoy ng argumento laki_t n .



Tingnan ang sumusunod na linya ng code, halimbawa:





#include

#include

int pangunahing ( ) {

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

int destination_array [ 5 ] = { 0 } ;

laki_t laki = sukat ng ( source_array ) ;

memmove ( destination_array , source_array , laki ) ;

para sa ( int i = 0 ; i < 5 ; i ++ ) {

printf ( '%d ' , destination_array [ i ] ) ;

}

bumalik 0 ;

}

Ang source array at destination array array ay unang tinukoy sa code sa itaas. Ang hanay ng patutunguhan sa simula ay walang laman, ngunit ang hanay ng pinagmulan ay may mga elemento 1 hanggang 5. Ang sukat ng() ginagamit ang operator upang matukoy ang laki ng source array, at ang resulta ay ise-save sa laki ng variable. Ang mga content ng source array ay kinokopya sa destination array.

Output



Konklusyon

Ang C programming language ay nag-aalok ng isang epektibo at maaasahang paraan upang kopyahin ang mga arrays gamit ang memmove() function. Ang versatility nito ay nagmumula sa kakayahang pangasiwaan ang overlapping na memorya, at dahil sa prangka nitong syntax, magagamit ito ng anumang C project.