为什么80%的码农都做不了架构师?>>>   

memmove() -- 拷贝内存内容
2007年07月06日 星期五 11:41

相关函数: bcopy(), memccpy(), memcpy(), strcpy(), strncpy()
表头文件: #include <string.h>
定义函数: void *memmove(void *dest, const void *src, size_t n);
函数说明: memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,当src和dest所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用memcpy()略慢些。
返回值: 返回指向dest的指针。
附加说明: 指针src和dest所指的内存区域可以重叠。

memcpy()、 memmove()和memccpy()
-------------------------------------------------------
    这三个函数的功能均是将某个内存块复制到另一个内存块。前两个函数的区别在于它们处理内存区域重叠(overlapping)的方式不同。第三三个函数的功能也是复制内存,但是如果遇到某个特定值时立即停止复制。
    对于库函数来说,由于没有办法知道传递给他的内存区域的情况,所以应该使用memmove()函数。通过这个函数,可以保证不会出现任何内存块重叠问题。而对于应用程序来说,因为代码“知道”两个内存块不会重叠,所以可以安全地使用memcpy()函数。

-------------------------------------------------------
#include <string.h>
#include <stdio.h>

int main()
{
    char s[] = "zengxiaolong";

memmove(s, s+4, strlen(s)-4);
    s[strlen(s)-4] = '\0';
    printf("*s = %s\n", s);

return 0;
}

转载于:https://my.oschina.net/lyr/blog/53146

memmove() -- 拷贝内存内容相关推荐

  1. 使用memmove/memcpy库函数拷贝内存时容易产生的异常

    使用memmove/memcpy库函数拷贝内存时容易引发的异常 首先,我们来看一下C库函数memmove的原型,如下: void memmove( void dest, const void* src ...

  2. C语言memmove()函数: 复制内存内容(可以重叠的内存块)

    头文件:#include <string.h> memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, s ...

  3. CUDA Samples: dot product(使用零拷贝内存)

    以下CUDA sample是分别用C++和CUDA实现的点积运算code,CUDA包括普通实现和采用零拷贝内存实现两种,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程C ...

  4. CUDA零拷贝内存(zerocopy memory)

    为了实现CPU与GPU内存的共享,cuda采用了零拷贝内存,它值固定内存的一种,当然,也就是实际存储空间实在cpu上. 零拷贝内存的延迟高,在进行频繁的读写操作时尽量少用,否则会大大降低性能. /** ...

  5. Python,查看内存内容,类似HxD的排列

    输入:range(100) 01 00 00 00 00 00 00 00 10 2C E9 71 FB 7F 00 00 10 69 71 D7 87 01 00 00 D0 55 74 D7 87 ...

  6. (memcpy,memmove...)内存函数还不会??别怕,我来助你一臂之力

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.内存函数是什么 二.内存函数的分类(常见) 1.memcpy memcpy的模拟实现 2.memmove memmov ...

  7. 【C/C++】通过无类型指针实现泛型拷贝(内存拷贝)

    无类型指针的缺陷是无法对类型进行解释.(不能计算无类型的大小) 如,定义一个无类型指针:void *p 不能进行++p或者*p的操作,因为系统没有此地址指向对象大小的信息. 无内存重叠(从低地址开始复 ...

  8. linux dma 拷贝内存数据_原来 8 张图,就可以搞懂「零拷贝」了

    前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝.直接 I/O.异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操 ...

  9. c++ cuda拷贝内存

    先说点基础知识: 复制A到B: cudaMemcpy(B,A) cudaMemcpy用于在主机(Host)和设备(Device)之间往返的传递数据,用法如下:主机到设备:cudaMemcpy(d_A, ...

最新文章

  1. Java基本数据类型转换|字符和字符串
  2. 如何寻找outlook邮件附件直接修改保存后的文档
  3. 使用指定的Action,Category调用系统Activity
  4. 终于有了属于自己的家,哈哈,很高兴~~
  5. 微软:PHP在IIS 7上雄起
  6. php oracle 配置,关于php:为Windows 64位配置Oracle OCI8
  7. Adobe illustrator 导出可编辑文本 - 连载 18
  8. 拓端tecdat|IBM SPSS Modeler通过数据挖掘我们能从股市数据得到什么
  9. Linux操作系统——类UNIX系统
  10. [CCS] CCS的安装及配置
  11. 华为交换机系统软件升级和安全漏洞修复教程
  12. 记住鲁迅的所有文章,因为他具有深远的意义,在当下意义重大。
  13. Win系统svchost进程流量偷跑,如何永久杜绝?
  14. java二进制保存图片_JAVA高级特性——二进制存储图片
  15. python---之cython的使用
  16. mysql缩写月名转换_mysql数据库时间、字符串类型互转
  17. 总结一下Java中SQL的九种写法
  18. 洛谷P2403 [SDOI2010]所驼门王的宝藏
  19. Windows 7下使用Windows Virtual PC运行Winodws XP Mode
  20. 金橙子软件不锈钢打黑_什么是锈? 安全,快速,简便的软件开发

热门文章

  1. vb设计一个由计算机,计算机VB程序的设计第一章.ppt
  2. ad 4层板设计实例文件_案例 | 美研【风险管理专业】1620Fall 310+申请实例
  3. uvm 形式验证_验证平台自动化篇之二:UVM Framework
  4. C# 解决串口接收数据不完整
  5. windows下 mysql 转移data目录
  6. python读取文件夹下所有图像 预处理_Tensorflow之tif图像文件预处理
  7. Django模板语法
  8. python基础—循环基础知识点
  9. Java编程在线学习靠谱吗?能学会吗?
  10. python实现轨迹回放供应_运动轨迹回放 百度地图api示例源码