初夏小談:模擬memcpy,memmove
阿新 • • 發佈:2018-11-25
menmcpy拷貝可以是字元型,自定義結構體等,不侷限於字串
#include<Aventador_SQ.h> //模擬實現memcpy void* Memcpy(void* dest, void* src, size_t count) { void* ret = dest; while (count--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } return ret; } //模擬實現memmove void* Memmove(void* dest, void* src, size_t count) { void* ret = dest; if (dest <= src || (char*)dest >= (char*)src + count) { while (count--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } } else { dest = (char*)dest + count - 1; src = (char*)src + count - 1; while (count--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } } return ret; } int main() { char arr[] = "2jin2gmin8gzhen"; char arr1[1024] = "0"; int x = strlen(arr); char* p=Memcpy(arr1, arr, x); printf("%s\n", p); printf("%s\n", arr); char* p1 = Memmove(arr1, arr, x); printf("%s\n", p1); printf("%s\n", arr1); system("pause"); return 0; }
珍&原始碼