Come copiare gli array con memmove() nella programmazione C

Come Copiare Gli Array Con Memmove Nella Programmazione C



Gli array sono un elemento di base nel linguaggio di programmazione C, che consente a un programmatore di memorizzare numerosi elementi dello stesso tipo di dati in una singola variabile. Ci sono momenti in cui un programmatore potrebbe dover replicare il contenuto di un array su un altro.

Cos'è la funzione memmove()

La funzione di libreria C memmove() viene utilizzato per copiare un certo numero di byte da un indirizzo di memoria a un altro. Poiché non è influenzato dalla sovrapposizione di aree di dati, è una tecnica efficace e produttiva per copiare i dati. Quando si usa memmove() per copiare un array, ci sono alcune cose da tenere a mente. La funzione deve prima ricevere due puntatori, uno che rappresenta la posizione di memoria di origine e l'altro la posizione di memoria di destinazione. È inoltre necessario specificare la quantità di byte che si desidera copiare dall'origine alla destinazione.

IL memmove() method è una funzione flessibile che può gestire sorgenti sovrapposte e copiare i dati in qualsiasi ordine da qualsiasi punto della memoria. L'unico inconveniente è che ci vuole un po' più di tempo rispetto ad altri metodi di copia come memcpy().







Come copiare gli array con memmove() nella programmazione C

IL memmove() la funzione è definita nel libreria e ha la sintassi:



vuoto * memmove ( vuoto * inizio , cost vuoto * src , taglia_t N ) ;

Il puntatore void* dest specifica l'array di destinazione, in cui verrà copiato il contenuto dell'array di origine. Il puntatore all'array sorgente che vogliamo copiare è const vuoto* src . Il numero di byte che vogliamo copiare dall'array di origine all'array di destinazione è specificato dall'argomento taglia_t n .



Dai un'occhiata alla seguente riga di codice, ad esempio:





#include

#include

int principale ( ) {

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

int matrice_destinazione [ 5 ] = { 0 } ;

taglia_t misurare = taglia di ( matrice_sorgente ) ;

memmove ( matrice_destinazione , matrice_sorgente , misurare ) ;

per ( int io = 0 ; io < 5 ; io ++ ) {

printf ( '%D ' , matrice_destinazione [ io ] ) ;

}

ritorno 0 ;

}

L'array di origine e l'array di destinazione vengono prima definiti nel codice precedente. L'array di destinazione è inizialmente vuoto, ma l'array di origine contiene gli elementi da 1 a 5. Il taglia di() L'operatore viene quindi utilizzato per determinare la dimensione dell'array di origine e il risultato viene salvato nella variabile size. Il contenuto dell'array di origine viene copiato nell'array di destinazione.

Produzione



Conclusione

Il linguaggio di programmazione C offre un modo efficace e affidabile per copiare gli array con l'estensione memmove() funzione. La sua versatilità deriva dalla sua capacità di gestire la memoria sovrapposta e, grazie alla sua sintassi semplice, può essere utilizzata da qualsiasi progetto C.