模拟函数memmove
#include stdio.h//怎么实现是从前往后拷贝还是从后往前拷贝 #include assert.h //拷贝函数核心是可以处理内存重叠的情况 //定义 void *my_memmove(void *dest,const void *source,size_t n) { //准备工作 // assert(dest ! NULL); // assert(source ! NULL); assert(dest ! NULL source ! NULL); void *result dest; //强转 char *p_dest (char*)dest; const char *p_source (const char*)source; //判断内存重叠选择复制方向 if(p_dest p_source) { //正向 for(size_t i 0;i n;i) { p_dest[i] p_source[i]; } }else { for(size_t i n-1;i ! (size_t)-1;i--) { p_dest[i] p_source[i]; } } return result; } int main() { // char a a b c d e f; char b[] a b c d e f g v; my_memmove(b 1,b,4); printf(%s,b); return 0; }指针的强化运用了解了size_t-1无符号。0xFFFFFFFF
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2491027.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!