memcpy() just copies from source to destination.It copies the bytes of
data between memory blocks. If the block of memory overlaps, the
function might not work properly.
memmove() is just like memcopy() but it deals with handling of
overlapping of memory blocks.


kazal
HPU


On 8/6/12, Vipin <vipinaggarwa...@gmail.com> wrote:
> As far as I could understand, memcpy just iterate through the memory( byte
> by byte or word by word) and blindly copies 'n' number of bytes from source
>
> to destination without considering whether source and destination memory
> overlaps. While memmove first copies n number of bytes to intermediate
> buffer and then copies the buffer content to destination address.
>
> consider the following example:
>
> #include <cstdio>
> #include <memory.h>
> #include <iostream>
>
> using namespace std;
>
> int main()
> {
> char a[20] = "weather is good";
> memcpy(a+1, a, strlen(a) );
> cout << a;
> return 0;
> }
>
>
> it produces the o/p:  wweather is good
>
> But as per definition of memcpy, o/p should be : wwwwwwwwwwwwwww. Its
> because, after writing 'w' at a[1], memcpy tries to copy a[1] to a[2] , but
>
> now we have 'w' at a[1]. so effectively w should be copied on subsequent
> locations (from a[2] onwards) strlen(a) times.
>
> can anybody explain the o/p "wweather is good" to me? Can you give me an
> example when just replacing memmove by memcpy produces different output?
>
> --
> Vipin
> Delhi College of Engineering
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/algogeeks/-/QG9qW4hwkloJ.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to