Hur man kopierar arrayer med memmove() i C-programmering

Hur Man Kopierar Arrayer Med Memmove I C Programmering



Arrayer är ett grundläggande element i programmeringsspråket C, vilket gör det möjligt för en programmerare att lagra flera objekt av samma datatyp i en enda variabel. Det finns tillfällen då en programmerare kan behöva replikera innehållet i en array till en annan.

Vad är memmove()-funktionen

C-biblioteksfunktionen memmove() används för att kopiera ett visst antal byte från en minnesadress till en annan. På grund av det faktum att det inte påverkas av överlappande dataområden är det en effektiv och produktiv teknik för att kopiera data. När man använder memmove() för att kopiera en array finns det några saker att tänka på. Funktionen måste först ges två pekare, en representerar källminnesplatsen och den andra destinationsminnesplatsen. Antalet byte som du vill kopiera från källan till destinationen måste också anges.

De memmove() metod är en flexibel funktion som kan hantera överlappande källor och kopiera data i valfri ordning från var som helst i minnet. Den enda nackdelen är att det tar lite längre tid än andra kopieringsmetoder som memcpy().







Hur man kopierar arrayer med memmove() i C-programmering

De memmove() funktionen definieras i bibliotek och har syntaxen:



tomhet * memmove ( tomhet * Start , konst tomhet * src , storlek_t n ) ;

Pekaren void* dest anger destinationsmatrisen, till vilken innehållet i källmatrisen kommer att kopieras. Pekaren till källmatrisen som vi vill kopiera är const void* src . Antalet byte som vi vill kopiera från källmatrisen till destinationsmatrisen anges av argumentet storlek_t n .



Ta en titt på följande kodrad, till exempel:





#include

#inkludera

int huvud ( ) {

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

int destination_array [ 5 ] = { 0 } ;

storlek_t storlek = storlek av ( source_array ) ;

memmove ( destination_array , source_array , storlek ) ;

för ( int i = 0 ; i < 5 ; i ++ ) {

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

}

lämna tillbaka 0 ;

}

Källmatrisen och destinationsmatrisen definieras först i koden ovan. Destinationsmatrisen är initialt tom, men källmatrisen har element 1 till 5. The storlek av() operatorn används sedan för att bestämma storleken på källmatrisen, och resultatet sparas i storleksvariabeln. Källmatrisens innehåll kopieras över till målmatrisen.

Produktion



Slutsats

Programmeringsspråket C erbjuder ett effektivt och pålitligt sätt att kopiera arrayer med memmove() fungera. Dess mångsidighet kommer från dess förmåga att hantera överlappande minne, och på grund av dess enkla syntax kan alla C-projekt använda det.