यहां हम देखेंगे कि C में memcpy() फ़ंक्शन को कैसे लागू किया जाए। memcpy() फ़ंक्शन का उपयोग डेटा के एक ब्लॉक को एक स्थान से दूसरे स्थान पर कॉपी करने के लिए किया जाता है। memcpy() का सिंटैक्स निम्न है:
void *memcpy(void *dest, const void *src, size_t num);
अपना खुद का memcpy बनाने के लिए हमें दिए गए पते को char* में टाइपकास्ट करना होगा, फिर स्रोत से गंतव्य तक बाइट दर बाइट डेटा कॉपी करना होगा। बेहतर समझ के लिए निम्नलिखित कोड देखें।
उदाहरण
#include <stdio.h>
#include <string.h>
void custom_memcpy(void *dest, void *src, size_t n) {
int i;
// src और dest को char* में कास्ट करें
char *src_char = (char *)src;
char *dest_char = (char *)dest;
for (i = 0; i < n; i++)
dest_char[i] = src_char[i]; // बाइट दर बाइट सामग्री कॉपी करें
}
int main() {
char src[] = "Hello World";
char dest[100];
custom_memcpy(dest, src, strlen(src) + 1);
printf("कॉपी की गई स्ट्रिंग है %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("कॉपी की गई सरणी है ");
for (i = 0; i < n; i++)
printf("%d ", dest_arr[i]);
}
आउटपुट
कॉपी की गई स्ट्रिंग है Hello World कॉपी की गई सरणी है 10 20 30 40 50 60 70 80 90