标签:代码实现 代码 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的功能,主要就是要理解,当两个字段空间重叠时,就需要从后往前拷贝
//此处空间重叠并不是只要目标和源有重叠就算,而是如果目标的头部重叠在了源中,那么才算重叠,这点要想清楚,才能实现这个功能
标签:代码实现 代码 null pre move div 库函数 实现 tin
原文地址:https://www.cnblogs.com/zhm521/p/14009142.html