memcpy的实现和模拟

1.函数的调用形式

void *memcpy(void *dst, const void *src, size_t count);

2.功能
内部含有’\0’字符的非字符串数据的拷贝, 或者无’\0’字符的非字符串的拷贝。从src的起始位置复制count个字节到dst的内存起始位置。
3.实现

#include<stdio.h>
int main()
{
    int arr1[10] = { 0 };
    int arr2[] = { 1,2,3,4,5 };
    int  i = 0;
    memcpy(arr1, arr2, 20);
    for (i = 0; i < 10; i++)
    {
        printf("%d", arr1[i]);
    }
    return 0;

这里写图片描述
4.模拟实现

#include<stdio.h>
void my_memcpy(void *dest, void *src, size_t count)
{
    while (count--)
    {
        *(char *)dest = *(char *)src;
        ++(char *)dest;
        ++(char *)src;
    }
}
int main()
{
    int arr1[10] = { 0 };
    int arr2[] = { 1,2,3,4,5 };
    int  i = 0;
    my_memcpy(arr1, arr2, 20);
    for (i = 0; i < 10; i++)
    {
        printf("%d", arr1[i]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_40995778/article/details/80356157
今日推荐