标签:模拟实现memmove() c语言 函数库函数的实现 面试题
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
void *my_memmove(void *p1, void *p2, size_t count)
{
assert(p1);
assert(p2);
char *dest = (char *)p1;
char *src = (char *)p2;
dest = dest + 16;
src = src + 8;
if ((src < dest) && (dest < src + count))
{
while (count--)
{
*(dest + count) = *(src + count);
}
}
else
{
while (count--)
{
*dest = *src;
src++;
dest++;
}
}
return p2;
}
int main()
{
int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i = 0;
int len = sizeof(arr1) / sizeof(arr1[0]);
int *ret = my_memmove(arr1, arr1, 16);
for (i = 0; i < len; i++)
{
printf("%d ", *(ret + i));
}
system("pause");
return 0;
}标签:模拟实现memmove() c语言 函数库函数的实现 面试题
原文地址:http://10740184.blog.51cto.com/10730184/1714508