Hàm memcpy() trong C
Memcpy () trong lập trình C là gì? Dưới đây là mọi điều bạn cần biết về cách dùng memcpy C.
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ả:
![]()
Những điểm quan trọng cần ghi nhớ khi dùng hàm memcpy trong C
Hàm memcpy() sao chép bộ nhớ theo định dạng từng byte mà không cần bất kỳ kiểm tra hay biến đổi nào, nghĩa là nó không xử lý các vấn đề chuyển đổi kiểu hoặc căn chỉnh, kiểm tra tràn bộ nhớ hoặc \0.
- Memcpy() dẫn đến hành vi không xác định khi địa chỉ nguồn và đích chồng chéo vì nó không xử lý các vùng bộ nhớ chồng chéo.
- Hàm memcpy() chỉ sao chép byte mà không khởi tạo bất kỳ bộ nhớ nào.
- Hàm memcpy() tạo ra một bản sao nông vì nó chỉ sao chép các byte thô của bộ nhớ từ vị trí này sang vị trí khác. Nó không thực hiện sao chép sâu hoặc xử lý các đối tượng ở cấp độ cao hơn.
- Memcpy() chỉ sao chép các giá trị con trỏ (tức là các địa chỉ mà chúng chứa), chứ không phải các đối tượng hoặc dữ liệu thực tế mà những con trỏ đó tham chiếu.
Bài trước: Hàm memcmp() trong C
Bài tiếp: Hàm memmove trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Cách bật, tắt chế độ tạm thời trên Instagram tự xóa tin nhắn
Hôm qua -

7 cách đánh số trang trong Word mà bạn cần biết
Hôm qua -

Hình nền Quốc kỳ Việt Nam, hình nền Cờ Việt Nam
2 ngày -

Cách chỉnh nút CS 1.1, sửa nút Half Life
Hôm qua -

Những lời chúc sinh nhật cho con yêu ý nghĩa nhất
2 ngày -

Cách xoay ngang 1 trang bất kỳ trong Word
Hôm qua 1 -

Công thức tính đường cao trong tam giác thường, cân, đều, vuông
2 ngày 5 -

Hướng dẫn đổi ID Facebook, thay địa chỉ Facebook mới
Hôm qua -

Code The Spike Volleyball Battle, coupon The Spike mới nhất 02/12/2025
Hôm qua 3 -

Cách nhận Robux miễn phí, nhận Robux miễn phí trong Roblox
2 ngày 1
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy