概述
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define nullptr NULL
void* mymemcpy(void* dst, const void* src, unsigned int count) {
if (dst == nullptr || src == nullptr || count < 0) return nullptr;
char* dstPtr = nullptr;
char* srcPtr = nullptr;
if (src < dst && (char*)dst < (char*)src + count) {
dstPtr = (char*)dst + count - 1;
srcPtr = (char*)src + count - 1;
while (count--) {
*dstPtr-- = *srcPtr--;
}
} else {
dstPtr = (char*)dst;
srcPtr = (char*)src;
while (count--) {
*dstPtr++ = *srcPtr++;
}
}
return dst;
}
int main() {
char p1[256] = "hello world!n";
char p2[256] = {0};
mymemcpy(p2, p1, strlen(p1));
printf("%s", p2);
}
最后
以上就是醉熏日记本为你收集整理的C语言手写memcpy的全部内容,希望文章能够帮你解决C语言手写memcpy所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复