百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
来源:互联网 发布:科大讯飞翻译软件app 编辑:程序博客网 时间:2024/06/02 16:24
在C/C++标准库函数中存在该函数,它用于将src指向的n个字节的数据拷贝到dest位置。在标准库函数中还存在另外一个函数memcpy,它也用来实现内存拷贝,但它不考虑区间重叠问题,在拷贝过程中可能造成重叠错误。
而memmove则针对上诉问题给出了一定的处理措施来防止拷贝出错:
(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝
(2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝
(3)当源内存的首地址小于目标内存的首地址时,实行反向拷贝
下面给出memmove的具体实现,关于memcpy可参考库函数实现或相关资料。void *memmove(void *dest,const void *src, size_t n){if (NULL == dest || src == NULL){cerr<<"NULL pointers!";return NULL;}int step;char *p, *q;if ((char *)src == (char *)dest) {return dest;} else if ((char *)src > (char *)dest) {step = 1;p = (char *)src;q = (char *)dest;} else {step = -1;p = (char *)src + n - 1;q = (char *)dest + n - 1;}for(int i = 0; i != n; ++i) {*q = *p;p += step;q += step;}return dest;}
- 百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。
- 用C语言实现函数void * memmove(void *dest, const void *src, size_t n)
- 用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 用C语言实现函数void * memmove(void *dest, const void *src, size_t n)
- 用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)
- [百度试题]用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上
- 2.C语言实现函数void *memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src所指的内存内容前n个字节到dest所指
- void *memmove(void *dest, const void *src, size_t n) 的实现
- memcpy函数的使用总结void *memcpy(void *dest, const void *src, size_t n);
- C 语言实现函数void*memmove(void*dest,constvoid*src,size_tn)。memmove 函数的功能是拷贝
- void* mymemcpy( void* dest, const void* src, size_t count )
- 编写函数 void dollars(char *dest,char const *src)
- void *memset(void *dest,int c,size_t count)
- 算法17:实现memcpy(void *src, int size, void *dest)
- 百度笔试题
- like和notlike查询支持数组方式 更方便了,不像以前那么繁琐
- 14岁初中生—— 踏踏实实的人生也最美
- 在数据中增加安全方法 filter 模型类增加filter连贯操作
- hibernate第二章:关联映射3
- 百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 增加表单提交字段合法性检测 弱爆了的方法 ,一直想用来着
- 网页设计精粹:网页中那些迷人的按钮设计
- 等你,执手渡流年(七夕)
- 模型类的data方法参数为空时 返回当前数据对象
- android中的style部分属性值介绍
- Windows下启动停止Oracle11g服务
- WordPress文章标题显示汉字方法
- 七夕感怀