memmove 函数
来源:互联网 发布:淘宝店更换类目影响 编辑:程序博客网 时间:2024/05/22 14:51
memmove 函数
用于内存拷贝的函数,没有类型限制,但是memmove使用要考虑内存重叠问题
void * memmove(void * destination, const void * source, size_t num);
用于从src中拷贝num个任意类型的内容到dest,如果目标区域和源区域有重叠(并不是所有重叠情况都需要特殊处理),memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域。
会发生内存重叠的情况:
库中实现的memmove函数
int main (){ char str[] = "memmove can be very useful......"; memmove (str+20,str+15,11); puts (str); return 0;}
模拟实现memmove函数:
void* My_memmove(void* dest, const void* src, size_t num){assert(dest);assert(src);void* p = dest;if ((dest > src) && ((char*)dest < ((char*)src + num))) //此时发生内存重叠,需要从后向前拷贝{dest = (char*)dest + num - 1;src = (char*)src + num - 1;while (num--){*(char*)dest = *(char*)src;dest = (char*)dest - 1;src = (char*)src - 1;}}else{while (num--){*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}}return p;}int main(){char ppy[] = "abc vvt xxx www qqqqqqqqqqqqq";printf("%s\n", My_memmove(ppy + 6, ppy + 4, 11));system("pause");return 0;}
阅读全文
1 0
- memmove() 函数
- memmove函数
- memmove函数
- memmove函数
- memmove函数
- memmove函数
- memmove 函数
- memmove函数
- memcpy,memccpy,memmove函数
- Memmove 函数说明
- 字符串函数memmove
- memcpy函数, strcpy(), memmove().
- memmove函数用法
- memmove函数的实现
- memcpy,memccpy,memmove函数
- memmove和ALIGN函数
- memcpy,memccpy,memmove函数
- memmove函数的使用方法
- win7中操作并访问本地虚拟机(Centos7)
- 线程安全与可重入函数的对比
- 数论与积性函数
- 学习笔记之Tensorflow Line Model Tutorial (tf.learn人口普查二分类)
- 1.计算机概述
- memmove 函数
- 特征选择与评分的可视化显示
- Centos 7 中部署ASP.NET Core网站问题记录
- Linuxc语言复习篇指针(-)
- Maven的Tomcat插件的使用
- LintCoder python 小白2-骰子求和
- PagerSlidingTabStrip源码分析
- 带Attention机制的Seq2Seq框架梳理
- 石子归并问题