কম্পিউটার

C++ এ আপনার নিজের memcpy() এবং memmove() লিখুন


memcpy() ফাংশন হল একটি অন্তর্নির্মিত ফাংশন যা উৎস অবস্থান থেকে গন্তব্য অবস্থানে ডেটা অনুলিপি করতে ব্যবহৃত হয়।

memcpy ফাংশনের প্রোটোটাইপ −

void * memcpy(void *destination_location, void *source_location, size_t size)

আমরা উৎস থেকে গন্তব্যে ডেটা অক্ষর অনুসারে কপি করব।

সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

উদাহরণ

#include<stdio.h>
#include<string.h>
void MemcpyFunc(void *dest, void *src, size_t n){
   char *dataS = (char *)src;
   char *dataD = (char *)dest;
   for (int i=0; i<n; i++)
      dataD[i] = dataS[i];
}
int main() {
   char dataS[] = "Hello!";
   char dataD[100];
   MemcpyFunc(dataS, dataD, strlen(dataS)+1);
   printf("Copied string is %s", dataD);
   return 0;
}

আউটপুট

Copied string is Hello!

memmove() ফাংশনটি memcpy() এর অনুরূপ, এটি চার দ্বারা উৎস থেকে গন্তব্য চর পর্যন্ত ডেটা কপি করে। এটি মেমকপি() এর একটি সমস্যাকে অতিক্রম করে যা ঘটে যখন উৎস এবং গন্তব্য একে অপরকে ওভারল্যাপ করে।

আমাদের memmove(), আমরা একটি অস্থায়ী অ্যারে ব্যবহার করব যা ওভারল্যাপিং উত্স এবং গন্তব্য সমস্যা পরিচালনা করে৷

সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

উদাহরণ

#include<stdio.h>
#include<string.h>
void MemcpyFunc(void *dest, void *src, size_t n){
   char *dataS = (char *)src;
   char *dataD = (char *)dest;
   char *temp = new char[n];
   for (int i=0; i<n; i++)
      temp[i] = dataS[i];
   for (int i=0; i<n; i++)
      dataD[i] = temp[i];
}
int main() {
   char dataS[] = "Hello!";
   char dataD[100];
   MemcpyFunc(dataS, dataD, strlen(dataS)+1);
   printf("Moved string is %s", dataD);
   return 0;
}

আউটপুট

Moved string is Hello!

  1. আমি কিভাবে একটি অক্ষরকে C এবং C++ এ একটি int-এ রূপান্তর করব?

  2. strncat() C++ এ

  3. আপনার সিস্টেমে int, ফ্লোট, ডবল এবং char এর আকার খুঁজে পেতে C++ প্রোগ্রাম

  4. কীভাবে আপনার নিজের সিজার সাইফার এনকোডার লিখবেন