memmove,memcpy

转自 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

上一篇:ingress-nginx 部署使用


下一篇:【ybt金牌导航1-2-3】折线统计