La funzione memcpy in C + + copia il numero specificato di byte di dati dalla sorgente specificata alla destinazione specificata . Questa è una copia binaria modo che il tipo di dati sottostante è irrilevante . I passi seguenti vi aiuterà a utilizzare la funzione memcpy . Istruzioni
1
Imparare la sintassi di memcpy in C + + . La sintassi completa è void * memcpy (void * destinazione , const void * source, size_t num ) . Si noti che questa funzione sempre copia num byte e non cerca un carattere di terminazione in modo da essere il più efficiente possibile . Memcpy restituisce l' array di destinazione .
2
Sappiate che i puntatori alla fonte e gli array di destinazione sono type-cast a un tipo di vuoto . La dimensione della destinazione e sorgente array deve essere di almeno num byte per evitare overflow , anche se questo non è richiesto . Memmove dovrebbe essere considerato come un approccio più sicuro se la sorgente e la sovrapposizione di destinazione .
3
Capire che la funzione C + + memcpy è conservato nella biblioteca cstring . Potrebbe essere necessario includere il file di intestazione string.h usare memcpy
4
Guardate il seguente programma completo per alcuni semplici esempi di come usare memcpy : .
# Include # includere
int main ( ) { char stringa1 [ ] = " stringa di prova " ; char stringa2 [ 80 ] ; memcpy ( stringa2 , stringa1 , strlen ( stringa1 ) +1) ; printf ( "stringa1 : % s \\ nstring2 : % s \\ n " , stringa1, stringa2 ) ; memcpy ( stringa1 , " " , 1); printf ( " stringa1 : % s \\ n " , stringa1 ) ; return 0; }
5 < p > Osservare il seguente output di questo programma :
stringa1 : prova stringstring2 : prova stringstring1 :
il primo uso di copie memcpy i contenuti di stringa1 al contenuto di stringa2 . Il secondo uso di memcpy cancella il contenuto della stringa1 spostando il carattere nullo di terminazione per la prima posizione di stringa1 .