Hàm void *memcpy(void *str1, const void *str2, size_t n) sao chép n ký tự từ str2 tới str1.
Khai báo hàm memcpy() trong C
Dưới đây là phần khai báo cho memcpy() trong C:
void *memcpy(void *str1, const void *str2, size_t n)
Tham số
str1 -- Đây là con trỏ tới mảng đích, nơi mà nội dung để được sao chép, ép kiểu thành một con trỏ của kiểu void*.
str2 -- Đây là con trỏ tới nguồn dữ liệu để sao chép, ép kiểu thành một con trỏ của kiểu void*.
n -- Đây là số byte để được sao chép.
Trả về giá trị
Hàm này trả về một con trỏ tới chuỗi đích, đó là str1.
Ví dụ
Chương trình C sau minh họa cách sử dụng của memcpy() trong C:
#include <stdio.h>
#include <string.h>
struct {
char name[40];
int age;
} person, person_copy;
int main ()
{
char myname[] = "Nguyen Hoang Nam";
/* su dung ham memcpy de sao chep chuoi: */
memcpy ( person.name, myname, strlen(myname)+1 );
person.age = 46;
/* su dung ham memcpy de sao chep struct: */
memcpy ( &person_copy, &person, sizeof(person) );
printf ("person_copy = %s, %d \n", person_copy.name, person_copy.age );
return 0;
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Theo Tutorialspoint
Bài trước: Hàm memcmp() trong C
Bài tiếp: Hàm memmove trong C
Source: https://quantrimang.com/hoc/ham-memcpy-trong-c-158003