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

Viết hàm memcpy() riêng trong C

memcpy(dest, src, n) copy n byte từ src sang dest. Tự triển khai: ép kiểu về char*, copy byte per byte.

Triển khai

void custom_memcpy(void* dest, const void* src, size_t n) {
    char* d = (char*)dest;
    const char* s = (const char*)src;
    for (size_t i = 0; i < n; i++)
        d[i] = s[i];
}

Ví dụ dùng

char src[] = "Hello World";
char dest[100];
custom_memcpy(dest, src, strlen(src)+1); // +1 cho null terminator
printf("%s\n", dest); // Hello World

int a[] = {10,20,30,40,50};
int b[5];
custom_memcpy(b, a, sizeof(a));
for(int i=0;i<5;i++) printf("%d ", b[i]); // 10 20 30 40 50