Program Discussion :: Basics
110 / 279
Can you write a program to implement memcpy. copy must be successful even source and destination address overlap.
Answer:
#include
#include
#include
using namespace std;
void myMemCpy(void *dest, void *src, size_t n)
{
char *csrc = (char *)src;
char *cdest = (char *)dest;
for (int i=0; i
Asked In ::
Language:
Neha
7 Jul, 2017 9:30 AM
#include<stdio.h>
#include<string.h>
void myMemCpy(void *dest, void *src, size_t n)
{
/* Typecast src and dest addresses to (char *)*/
char *csrc = (char *)src;
char *cdest = (char *)dest;
/* Copy contents of src[] to dest[]*/
for (int i=0; i<n; i++)
cdest[i] = csrc[i];
}
/* Driver program*/
int main()
{
char csrc[] = "GeeksforGeeks";
char cdest[100];
myMemCpy(cdest, csrc, strlen(csrc)+1);
printf("Copied string is %s", cdest);
int isrc[] = {10, 20, 30, 40, 50};
int n = sizeof(isrc)/sizeof(isrc[0]);
int idest[n], i;
myMemCpy(idest, isrc, sizeof(isrc));
printf("\nCopied array is ");
for (i=0; i<n; i++)
printf("%d ", idest[i]);
return 0;
}
Language:
Aarkin
7 Jul, 2017 9:30 AM
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
void myMemCpy(void *dest, void *src, size_t n)
{
char *csrc = (char *)src;
char *cdest = (char *)dest;
for (int i=0; i<n; i++)
cdest[i] = csrc[i];
}
int main()
{
char csrc[] = "GeeksforGeeks";
char cdest[100];
myMemCpy(cdest, csrc, strlen(csrc)+1);
cout<<"Copied string is "<<cdest;
int isrc[] = {10, 20, 30, 40, 50};
int n = sizeof(isrc)/sizeof(isrc[0]);
int idest[n], i;
myMemCpy(idest, isrc, sizeof(isrc));
cout<<"\nCopied array is ";
for (i=0; i<n; i++)
cout<< idest[i];
return 0;
}