Maison > développement back-end > C++ > le corps du texte

Écrivez votre propre fonction memcpy() en langage C

WBOY
Libérer: 2023-08-25 15:17:04
avant
1737 Les gens l'ont consulté

É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);
Copier après la connexion

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]);
}
Copier après la connexion

Sortie

The copied string is Hello World
The copied array is 10 20 30 40 50 60 70 80 90
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal