C Programmazione

Come usare la funzione memcpy in linguaggio C?

Come usare la funzione memcpy in linguaggio C?
Nel linguaggio C la funzione memcpy() viene utilizzata per copiare un blocco di memoria da una posizione all'altra. In questo articolo, discuteremo in dettaglio come viene utilizzata la funzione memcpy(). Quindi iniziamo.

File di intestazione:

corda.h

Sintassi:

void * mempcpy (void *dest, const void *src, size_t size)

Argomenti:

La funzione accetta 3 argomenti:

  1. destinazione:
  2. Questo è un puntatore iniziale di un blocco di memoria in cui il blocco di memoria puntato da src (2° argomento) verrà copiato. Il puntatore viene dichiarato void, quindi qualsiasi tipo di blocco di memoria può essere copiato.

  3. src:
  4. Questo è un puntatore iniziale del blocco di memoria di origine da cui verrà copiato il blocco di memoria. Il puntatore viene dichiarato void, quindi qualsiasi tipo di blocco di memoria può essere copiato.

  5. dimensione :
  6. Questa è la dimensione del blocco di memoria in byte.

Il valore dei due puntatori destinazione e src dovrebbe essere in modo tale che due blocchi di memoria non si sovrappongano. La dimensione dei blocchi di memoria di origine e destinazione deve essere almeno di dimensione (3° argomento) byte per evitare situazioni di sovrapposizione. Se i due blocchi di memoria sono sovrapposti allora il comportamento del memcpy() la funzione è indefinita. Quando esiste la possibilità di sovrapposizione, è possibile utilizzare il memove() funzione di libreria in cui la sovrapposizione è ben definita. memove() la funzione è più lenta rispetto a memcpy() funzione.

A causa del valore di dimensione, se si accede alla sorgente o alla destinazione oltre la loro lunghezza del buffer, allora il comportamento del memcpy() la funzione è indefinita.

Il memcpy() la funzione non controlla per terminare il carattere '\0'.

Valori restituiti:

Questa funzione restituisce il valore dell'indirizzo di destinazione destinazione. Come il valore di destinazione è già disponibile, quindi non deve essere memorizzato in nessuna variabile.

Esempi:

//Esempio 1.c
#includere
#includere
intero principale()

char src[] = "Ciao";
char dest[13];
memcpy(dest,src,6);
printf("dest dopo il primo memcpy() => %s\n",dest);
memcpy(dest+sizeof(src)-1," world!",8);
printf("dest dopo il secondo memcpy() => %s\n",dest);
restituisce 0;

Nell'esempio1.c abbiamo dichiarato un array di due caratteri src e destinazione. La dimensione del src è 6 e il destinazione è 13. Innanzitutto, abbiamo copiato 6 caratteri 'H', 'e', ​​'l', 'l', 'o', '\0' da src per destinazione ( Riga 11 ). Nella seconda funzione memcpy() ha copiato 8 caratteri", 'w', 'o', 'r', 'l', 'd', '!', '\0' alla destinazione dopo 5 caratteri ( Riga 15 ). Pittoricamente possiamo rappresentarlo come segue:

//Esempio2.c
#includere
#includere
intero principale()

typedef struct studente

nome del personaggio;
int id;
int età;
std;
studente standard1; // Dichiara student1 di tipo std
studente standard2; // Dichiara student2 di tipo std
// Assegnazione del valore di sudent1
studente1.nome = "Bamdev Ghosh";
studente1.id = 1105;
studente1.età = 30;
printf("Studente1:\n\tNome : %s\n\tid : %d\n\taggio : %d\n",studente1.nome,
studente1.ID,studente1.età);
// Copia studente1 in studente2
memcpy(&student2, &student1, sizeof(student1));
printf("\n\nDopo memcpy:");
printf("\n\nStudente2:\n\tNome : %s\n\tid : %d\n\taggio : %d\n",
studente2.nome,studente2.ID,studente2.età);
restituisce 0;

Nell'esempio2.c abbiamo dichiarato due strutture studente1 e studente2 (Linea 15 e 16). Innanzitutto, inizializziamo student1 (riga 19, 20, 21). Dopodiché, usiamo memcpy copiare i dati da data studente1 per studente2.

Conclusione:

In questo articolo abbiamo imparato come 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 con attenzione.

WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...
Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...
Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...

Ultimi articoli sui sistemi operativi. Tante guide interessanti e consigli utili. Sentiti come il tuo nel mondo della tecnologia moderna