Rumah > Artikel > pembangunan bahagian belakang > 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.
#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]); }
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!