Maison >développement back-end >C++ >Écrivez votre propre fonction memcpy() en langage C

Écrivez votre propre fonction memcpy() en langage C

WBOY
WBOYavant
2023-08-25 15:17:041842parcourir

Écrivez votre propre fonction memcpy() en langage C

Ici, nous verrons comment implémenter la fonction memcpy() en langage C. La fonction memcpy() est utilisée pour copier un bloc de données d'un emplacement à un autre. La syntaxe de memcpy() est la suivante -

void * memcpy(void * dest, const void * srd, size_t num);

Pour créer notre propre memcpy, nous devons transtyper l'adresse donnée en char* puis copier les données octet par octet de la source vers la destination. Lisez simplement le code suivant pour avoir une meilleure idée.

Exemple

#include<stdio.h>
#include<string.h>
void custom_memcpy(void *dest, void *src, size_t n) {
   int i;
   //cast src and dest to char*
   char *src_char = (char *)src;
   char *dest_char = (char *)dest;
   for (i=0; i<n; i++)
      dest_char[i] = src_char[i]; //copy contents byte by byte
}
main() {
   char src[] = "Hello World";
   char dest[100];
   custom_memcpy(dest, src, strlen(src)+1);
   printf("The copied string is %s</p><p>", dest);
   int arr[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
   int n = sizeof(arr)/sizeof(arr[0]);
   int dest_arr[n], i;
   custom_memcpy(dest_arr, arr, sizeof(arr));
   printf("The copied array is ");
   for (i=0; i<n; i++)
      printf("%d ", dest_arr[i]);
}

Sortie

The copied string is Hello World
The copied array is 10 20 30 40 50 60 70 80 90

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer