用C语言实现函数void * memmove(void *dest, const void *src, size_t n)
2014-06-14 12:01
645 查看
用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove
函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
注意考虑地址叠加问题,即dest的地址是在src的哪个位置。
是在src的下面,还是上面,上面的话是 dest>(src+n),还是dest<(src-n)呢?
函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
注意考虑地址叠加问题,即dest的地址是在src的哪个位置。
是在src的下面,还是上面,上面的话是 dest>(src+n),还是dest<(src-n)呢?
#include<stdio.h> void * memmove(void *dest, const void *src, size_t n) { if(dest==NULL || src==NULL) { return NULL; } char* p_dest=(char*) dest; char* p_src = (char*) src; if(p_dest<p_src || p_dest>(p_src+n)) { while(n--) { *p_dest++=*p_src++; } //*p_dest='\0'; 后面如果要舍弃,就加上去 } else if( p_dest <(p_src+n)) { p_dest=p_dest+n-1; p_src=p_src+n-1; while(n--) *p_dest--=*p_src--; //*(p_dest+n)='\0'; } return dest; } int main() { char d[7]={'1','2','3','4','5','6'}; char s[7]={'a','b','c','d','e','f'}; char *dest=d; char *src=s; dest=(char *)memmove( dest, src, 3); printf("%s ",dest); return 0; }
相关文章推荐
- 注意顺序____用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)
- 2.C语言实现函数void *memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src所指的内存内容前n个字节到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)
- void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助
- 用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)
- void* mymemcpy( void* dest, const void* src, size_t count )
- 【c语言】实现char * my_strcat(char * dest,char *src)函数. 返回: dest字符串的地址。 功能:将src指向的字符串追加到dest指向字符串的后面
- C语言 实现char * my_strcat(char * dest,char *src)函数
- C语言实现字符串拷贝函数char *strcpy(char *dest, const char *src)
- 编写函数 void dollars(char *dest,char const *src)
- 【C语言】实现char * my_strcat(char * dest,char *src)函数. 返回: dest字符串的地址。 功能:将src指向的字符串追加到dest指向字符串的后面。
- void* mymemcpy( void* dest, const void* src, size_t count )
- memcpy函数的使用总结void *memcpy(void *dest, const void *src, size_t n);