Kaip nukopijuoti masyvus su memmove() programuojant C

Kaip Nukopijuoti Masyvus Su Memmove Programuojant C



Masyvai yra pagrindinis C programavimo kalbos elementas, leidžiantis programuotojui viename kintamajame saugoti daugybę to paties duomenų tipo elementų. Kartais programuotojui gali tekti pakartoti vieno masyvo turinį į kitą.

Kas yra memmove() funkcija

C bibliotekos funkcija atminti () naudojamas nukopijuoti tam tikrą skaičių baitų iš vieno atminties adreso į kitą. Dėl to, kad jai nedaro įtakos persidengiančios duomenų sritys, tai efektyvi ir produktyvi duomenų kopijavimo technika. Naudojant atminti () norėdami nukopijuoti masyvą, reikia atsiminti keletą dalykų. Funkcijai pirmiausia turi būti pateiktos dvi rodyklės, viena nurodanti šaltinio atminties vietą, o kita – paskirties atminties vietą. Taip pat turi būti nurodytas baitų, kuriuos norite nukopijuoti iš šaltinio į paskirties vietą, kiekis.

The atminti () metodas yra lanksti funkcija, galinti tvarkyti persidengiančius šaltinius ir bet kokia tvarka kopijuoti duomenis iš bet kurios atminties vietos. Vienintelis trūkumas yra tai, kad tai užtrunka šiek tiek ilgiau nei kiti kopijavimo būdai, pvz memcpy ().







Kaip nukopijuoti masyvus su memmove() programuojant C

The atminti () funkcija apibrėžta biblioteka ir turi sintaksę:



tuštuma * prisiminti ( tuštuma * pradėti , konst tuštuma * src , dydis_t n ) ;

Rodyklė negalioja* pask nurodo paskirties masyvą, į kurį bus nukopijuotas šaltinio masyvo turinys. Rodyklė į šaltinio masyvą, kurį norime nukopijuoti, yra const negalioja* src . Argumentu nurodomas baitų skaičius, kurį norime nukopijuoti iš šaltinio masyvo į paskirties masyvą dydis_t n .



Pavyzdžiui, pažiūrėkite į šią kodo eilutę:





#include

#include

tarpt pagrindinis ( ) {

tarpt šaltinio_masyvas [ ] = { 1 , 2 , 3 , 4 , 5 } ;

tarpt paskirties_masyvas [ 5 ] = { 0 } ;

dydis_t dydis = dydis ( šaltinio_masyvas ) ;

prisiminti ( paskirties_masyvas , šaltinio_masyvas , dydis ) ;

dėl ( tarpt i = 0 ; i < 5 ; i ++ ) {

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

}

grąžinti 0 ;

}

Pirmiau pateiktame kode pirmiausia apibrėžiami šaltinio ir paskirties masyvo masyvai. Iš pradžių paskirties masyvas yra tuščias, bet šaltinio masyve yra elementai nuo 1 iki 5 dydis() Tada operatorius naudojamas šaltinio masyvo dydžiui nustatyti, o rezultatas išsaugomas dydžio kintamajame. Šaltinio masyvo turinys nukopijuojamas į paskirties masyvą.

Išvestis



Išvada

C programavimo kalba siūlo veiksmingą ir patikimą būdą kopijuoti masyvus su atminti () funkcija. Jo universalumas kyla dėl gebėjimo tvarkyti persidengiančią atmintį, o dėl paprastos sintaksės ją gali naudoti bet kuris C projektas.