用C语言实现函数 memmove
2014-07-05 17:38
399 查看
用C 语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src 所指的内存内容前n 个字节到dest 所指的地址上
#include <iostream.h> /* 按字节拷贝时指针类型的转换,第二点就是内存有重叠 */ void *memmove(void *dest,const void *src,size_t count) { void * ret = dest; if (dest <= src || (char *)dest >= ((char *)src + count)) { /* * Non-Overlapping Buffers * copy from lower addresses to higher addresses */ while (count--) { *(char *)dest = *(char *)src; dest = (char *)dest + 1; src = (char *)src + 1; } } else { /* * Overlapping Buffers * copy from higher addresses to lower addresses */ dest = (char *)dest + count - 1; src = (char *)src + count - 1; while (count--) { *(char *)dest = *(char *)src; dest = (char *)dest - 1; src = (char *)src - 1; } } return(ret); } void main( ) { char* p = "hello,world"; char dest[6] = {0}; char *q = (char*)memmove(dest,p,5); cout<<q<<endl; }
相关文章推荐
- 2.C语言实现函数void *memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src所指的内存内容前n个字节到dest所指
- 【c语言】模拟实现memcpy()、memmove()函数
- 【C语言】memcpy函数和memmove函数的实现与区别
- C语言模拟实现memcpy,memmove函数
- C语言 memmove函数实现
- memcpy和memmove函数的实现
- C语言中不用宏实现变长参数函数的原理及实现
- C语言可变参数函数的实现[转]
- C语言可变参数函数的实现
- memcpy和memmove函数的实现
- C语言部分函数原型实现
- C语言常用函数的底层实现方法
- c语言对时间的处理函数和计时的实现
- C语言部分函数原型实现
- C语言实现类中方法 用函数指针在结构体中加入函数
- C语言部分函数原型实现
- C语言中不用宏实现变长参数函数的原理及实现
- c语言对时间的处理函数和计时的实现
- 用C语言来实现的类似C++函数的重载特性-----void*指针闲谈
- (C语言)头文件实现的函数