码迷,mamicode.com
首页 > 其他好文 > 详细

memmove库函数模拟实现

时间:2020-11-24 12:25:30      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:代码实现   代码   null   pre   move   div   库函数   实现   tin   

//第一次尝试:
#include<stdio.h> #include<stdlib.h> void* myMemmove(void* destin, const void* source,size_t num) { if (destin == NULL || source == NULL) { return NULL; } char* sour = (char*)source; char* dest = (char*)destin; if (dest > sour && dest < (sour + num)) { for (int i = num - 1; i >= 0; i--) { *(dest + i)= *(sour + i); } } else { for (int i = 0; i < num; i++) { *(dest + i) = *(sour + i); } } return destin; } int main() { int arr[4] = { 1,2,3,4 }; int arr1[4] = { 0 }; myMemmove(arr1, arr, sizeof(arr)); for (int i = 0; i < 4; i++) { printf("%d ", arr1[i]); }printf("\n"); return 0; }
//本代码实现了memmove的功能,主要就是要理解,当两个字段空间重叠时,就需要从后往前拷贝
//此处空间重叠并不是只要目标和源有重叠就算,而是如果目标的头部重叠在了源中,那么才算重叠,这点要想清楚,才能实现这个功能

 

memmove库函数模拟实现

标签:代码实现   代码   null   pre   move   div   库函数   实现   tin   

原文地址:https://www.cnblogs.com/zhm521/p/14009142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!