Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm memcpy() trong C/C++

Hàm memcpy() copy khối bộ nhớ từ nguồn (source) đến đích (destination). Không kiểm tra trùng lặp (overlap) – hành vi không xác định nếu overlap. Khai báo trong <string.h>.

Cú pháp

void *memcpy(void *dest, const void *src, size_t n);

Tham số: dest – đích; src – nguồn; n – số byte copy. Trả về dest.

Ví dụ

#include <stdio.h>
#include <string.h>

int main() {
    char a[] = "Firststring";
    const char b[] = "Secondstring";
    memcpy(a, b, 5);  // Copy 5 byte dau tu b sang a
    printf("Mang moi: %s\t%s", a, b);
    return 0;
}

Kết quả

Mang moi: Seconstring   Secondstring

Giải thích: Copy 5 byte đầu của b ("Secon") đè lên a. a thành "Seconstring". b không đổi.

Cảnh báo quan trọng: Nếu src và dest overlap (ví dụ copy trong cùng mảng), memcpy hành vi undefined. Phải dùng memmove() cho trường hợp overlap.