Differences between memmove and memcpy

Source: Internet
Author: User

 

Both memcpy and memmove () are library functions in C language. In the header file string. H, the function is to copy the memory content of a certain length. The prototype is as follows:

Void * memcpy (void * DST, const void * SRC, size_t count );


Void * memmove (void * DST, const void * SRC, size_t count );


 

They play the same role. The only difference is that when the memory partially overlaps, memmove ensures that the copied results are correct, and memcpy does not guarantee that the copied results are correct.

 

 

In the first case, copying overlapping areas will not cause problems, and the content can be correctly copied.

In the second case, the problem occurs in the two bytes on the right. The original content of the two bytes is overwritten and not saved. Therefore, during the next copy, the copied content is overwritten, which is obviously problematic.

 

In fact, memcpy is only a subset of memmove.

 

The C language implementation of the two is very simple. If you are interested, you can check it out. In actual situations, both functions are implemented by assembly.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.