memcpy()
描述
C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。
声明
下面是 memcpy() 函数的声明。
void *memcpy(void *str1, const void *str2, size_t n)参数
- str1 -- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
- str2 -- 指向要复制的数据源,类型强制转换为 void* 指针。
- n -- 要被复制的字节数。
返回值
该函数返回一个指向目标存储区 str1 的指针。
memcpy()函数模拟
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <assert.h> void* my_memcpy(void* dest, const void* src, size_t num) { assert(dest && src); void* ret = dest; while (num--) { *(char*)dest = *(char*)src; ++(char*)dest; ++(char*)src; } return ret; } struct S { char name[10]; int age; }; int main() { struct S arr1[] = { {"ajd",20},{"qwe",18} }; struct S arr2[3] = { 0 }; my_memcpy(arr2, arr1, sizeof(arr1)); printf("%s\n", arr2); return 0; }