Hàm void *memmove(void *str1, const void *str2, size_t n) Sao chép n ký tự từ str2 sang str1, nhưng để giải quyết việc trùng khớp các khối bộ nhớ, thì memmove() là một hướng tiếp cận an toàn hơn hàm memcpy().
Khai báo hàm memmove trong C
Dưới đây là phần khai báo cho memmove() trong C:
void *memmove(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 memmove() trong C:
#include <stdio.h> #include <string.h> int main () { char str[] = "Vi du ham memmove trong C"; memmove (str+20,str+15,11); puts (str); 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 memcpy() trong C
Bài tiếp: Hàm memset() trong C