void *memmove(void *dest, const void *src, size_t count);
Parameter:
dest: vùng nhớ mới chứa số byte copy từ src (kiểu int, long, char,…)
drc: vùng nhớ chứa dữ liệu cần copy
count: số byte cần copy
Remark:
Hàm memmove( ) copy count byte từ src vào vùng nhớ mới dest. Nếu vùng nhớ dest và src bị chồng lên nhau (overlap) thì hàm memmove( ) sẽ đảm bảo các byte trong vùng chồng lấn sẽ được copy trước khi ghi đè xuống. Nói một cách đơn giản tức là hàm memove( ) sẽ đảm bảo việc xử lí là chính xác không như hàm memcpy( ).
Chú ý: kích thước vùng nhớ phải lớn hơn hoặc bằng kích thước của src.
Ví dụ:
#include "stdio.h" #include "conio.h" #include "string.h" char str1[] = "aabbcc"; void main( void ) { printf( "The string: %s\n", str1 ); memcpy( str1 + 2, str1, 4 ); printf( "New string: %s\n", str1 ); strcpy_s( str1, sizeof(str1), "aabbcc" ); // reset string printf( "The string: %s\n", str1 ); memmove(str1 + 2, str1, 4 ); printf( "New string: %s\n", str1 ); getch(); }
Kết quả:
Leave a Reply
You must be logged in to post a comment.