用 C 编写你自己的 memcpy()

在这里我们将看到如何memcpy()在 C 中实现函数。该memcpy()函数用于将数据块从一个位置复制到另一个位置。的语法memcpy()如下 -

void * memcpy(void * dest, const void * srd, size_t num);

为了制作我们自己的 memcpy,我们必须将给定的地址类型转换为 char*,然后逐字节地将数据从源复制到目标。只需通过以下代码即可获得更好的主意。

示例

#include<stdio.h>

#include<string.h>

void custom_memcpy(void *dest, void *src, size_t n) {

   int i;

   //将 src 和 dest 转换为 char*

   char *src_char = (char *)src;

   char *dest_char = (char *)dest;

   for (i=0; i<n; i++)

      dest_char[i] = src_char[i]; //逐字节复制内容

}

main() {

   char src[] = "Hello World";

   char dest[100];

   custom_memcpy(dest, src, strlen(src)+1);

   printf("The copied string is %s\n", dest);

   int arr[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};

   int n = sizeof(arr)/sizeof(arr[0]);

   int dest_arr[n], i;

   custom_memcpy(dest_arr, arr, sizeof(arr));

   printf("复制的数组是 ");

   for (i=0; i<n; i++)

      printf("%d ", dest_arr[i]);

}

输出结果
The copied string is Hello World

复制的数组是 10 20 30 40 50 60 70 80 90

以上是 用 C 编写你自己的 memcpy() 的全部内容, 来源链接: utcz.com/z/331825.html

回到顶部