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

Tulis fungsi memcpy() anda sendiri dalam bahasa C

WBOY
Lepaskan: 2023-08-25 15:17:04
ke hadapan
1770 orang telah melayarinya

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);
Salin selepas log masuk

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]);
}
Salin selepas log masuk

Output

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

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan