Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tulis fungsi memcpy() anda sendiri dalam bahasa C

Tulis fungsi memcpy() anda sendiri dalam bahasa C

WBOY
WBOYke hadapan
2023-08-25 15:17:041750semak imbas

Tulis fungsi memcpy() anda sendiri dalam bahasa C

Di sini kita akan melihat bagaimana untuk melaksanakan fungsi memcpy() dalam bahasa C. Fungsi memcpy() digunakan untuk menyalin blok data dari satu lokasi ke lokasi lain. Sintaks memcpy() adalah seperti berikut -

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

Untuk membuat memcpy kita sendiri, kita perlu menaip alamat yang diberikan kepada char* dan kemudian menyalin bait data demi bait dari sumber ke destinasi. Cuma baca kod berikut untuk mendapatkan idea yang lebih baik.

Contoh

#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]);
}

Output

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

Atas ialah kandungan terperinci Tulis fungsi memcpy() anda sendiri dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam