https://onlinegdb.com/B1OmLVB6D
我不确定为什么 src 变量在运行 memcpyByByte 函数后会打印两次。
int memcpyByByte(void* src, void* dest, size_t len) {
    char* srcC = (char*)src;
    char* destC = (char*)dest;
    
    for(int i = 0; i< len; i++){
        *(destC+i) = *(srcC+i);
    }
}
int main()
{
    char a[10] = "1234567890";
    char b[10] = "6b";
    memcpyByByte(&a, &b, sizeof(a));
    printf("src:  %s\n", a);
    printf("dest: %s", b);
    return 0;
}
C 字符串在末尾有一个隐含的终止字节,值为 0 (NULL)。字符串的大小"1234567890"是 11,而不是 10。
将其分配给 10 个元素的长数组将导致终止符丢失。从而printf()将继续扫描内存后a,可能打印的内容b。
只需将a和 的大小更改b为11。或者让编译器确定大小:
char a[] = "1234567890";
char b[sizeof a] = "6g";