Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

เขียน memcpy() เองใน C


memcpy() คัดลอกบล็อกข้อมูลจากที่หนึ่งไปอีกที่ ไวยากรณ์:

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

เพื่อทำ memcpy เอง ต้อง typecast address เป็น char* คัดลอกข้อมูลจาก source ไป destination ไบต์ต่อไบต์

ตัวอย่าง

#include<stdio.h> #include<string.h> void custom_memcpy(void *dest, void *src, size_t n) { int i; char *src_char = (char *)src; char *dest_char = (char *)dest; for(i=0; i<n; i++) dest_char[i] = src_char[i]; } main() { char src[] = "Hello World"; char dest[100]; custom_memcpy(dest, src, strlen(src)+1); printf("The copied string is %s\n", 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