File di intestazione:
corda.HSintassi:
void *mempcpy (void *dest, const void *src, size_t size)Argomenti:
La funzione prende 3 argomenti:
Questo è un puntatore iniziale di un blocco di memoria in cui il blocco di memoria indicava src (2 ° argomento) verrà copiato. Il puntatore è dichiarato vuoto, quindi qualsiasi tipo di blocco di memoria può essere copiato.
Questo è un puntatore iniziale del blocco di memoria di origine da dove verrà copiato il blocco di memoria. Il puntatore è dichiarato vuoto, quindi qualsiasi tipo di blocco di memoria può essere copiato.
Questa è la dimensione del blocco di memoria in byte.
Il valore del due puntatore dest E src dovrebbe essere in modo tale che due blocchi di memoria non si sovrappongono. La dimensione dei blocchi di memoria di origine e destinazione deve essere almeno misurare (3 ° argomento) byte per evitare situazioni sovrapposte. Se i due blocchi di memoria sono sovrapposti, il comportamento del memcpy () La funzione non è definita. Quando c'è la possibilità di sovrapposizione, puoi usare il mmmove () funzione della libreria in cui la sovrapposizione è ben definita. mmmove () La funzione è più lenta rispetto a memcpy () funzione.
A causa del valore di misurare, Se si accede l'origine o la destinazione oltre la lunghezza del buffer, il comportamento del memcpy () La funzione non è definita.
IL memcpy () La funzione non controlla il carattere '\ 0'.
Valori di ritorno:
Questa funzione restituisce il valore dell'indirizzo di destinazione dest. Come valore di dest è già disponibile, quindi non è necessario archiviare in nessuna variabile.
Esempi:
//Esempio 1.CNell'esempio1.c Abbiamo dichiarato un array a due caratteri src E dest. La dimensione del src è 6 e il dest è 13. Innanzitutto, abbiamo copiato 6 caratteri 'H', 'e', 'l', 'l', 'o', '\ 0' da src A dest (Riga 11). Nella seconda funzione Memcpy () ha copiato 8 caratteri ", 'W', 'o', 'r', 'l', 'd', '!',' \ 0 'al dest dopo 5 caratteri (riga 15). Pictorialmente possiamo rappresentarlo come segue:
// Esempio2.CNell'esempio2.c Abbiamo dichiarato due strutture Studente1 E Studente2 (Riga 15 e 16). Innanzitutto, inizializziamo Student1 (riga 19, 20, 21). Dopodiché, usiamo memcpy per copiare i dati da Studente1 A Studente2.
Conclusione:
In questo articolo, abbiamo imparato a usare il memcpy funzione. Abbiamo visto che questa funzione può essere utilizzata per qualsiasi tipo di blocco di memoria, ma questa funzione ha alcune limitazioni. Quindi, devi usare questa funzione attentamente.