首页 > 其他 > 详细

memmove,memcpy

时间:2021-08-04 19:24:18      阅读:25      评论:0      收藏:0      [点我收藏+]

转自 http://c.biancheng.net/cpp/html/156.html

memcpy 用来复制内存内容

  • void * memcpy ( void * dest, const void * src, size_t num );

  • 并不关心被复制的数据类型,只是逐字节地进行复制,这给函数的使用带来了很大的灵活性,可以面向任何数据类型进行复制。

    • dest 指针要分配足够的空间,也即大于等于 num 字节的空间。如果没有分配空间,会出现断错误。

    • dest 和 src 所指的内存空间不能重叠

memcpy 复制内存内容

  • void * memmove(void *dest, const void *src, size_t num);

  • 当src 和 dest 所指的内存区域重叠时,memmove() 仍然可以正确的处理

示例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
    char str[] = "memmove can be very useful......";
    memmove (str+20,str+15,11);
    puts (str);
    system("pause");
    return 0;
}
运行结果:
memmove can be very very useful.

这段代码能够很好的说明内存重叠时的情况:先将内容复制到类似缓冲区的地方,再用缓冲区中的内容覆盖 dest 指向的内存
技术分享图片

memmove,memcpy

原文:https://www.cnblogs.com/lodger47/p/15099948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!