#include<stdio.h>
void * memcpy(void* dest, void* src, int count)
{
if (dest == NULL || src == NULL)
return NULL;
char* p = (char*)dest;
char* q = (char*)src;
//防止内存重叠
if (p > q && p <q + count - 1)
{
for (int i = count - 1;i > 0;i--)
{
p[i] = q[i];
}
}
else
{
for (int i = 0;i < count-1;i++)
{
p[i] = q[i];
}
}
return dest;
}
int main()
{
char* s = "hhh";
char s1[10];
memcpy(s1, s, 4);
printf("%s", s1);
}
实现memcpy
最新推荐文章于 2024-05-21 17:58:01 发布