今天在学习memcpy的时候想要实现memcpy时出现问题(我使用的vs2019)

问题遇到的现象和发生背景

++需要左值

问题相关代码,请勿粘贴截图
void* my_memcpy(void* dest,const void* src,size_t num)
{
    void* ret = dest;
    assert(dest!=NULL);
    assert(num!=NULL);
    while (num--)
    {
        *(char*)dest = *(char*)src;
        ++(char*)dest;
        ++(char*)src;
    }
    return ret;
}
struct  s
{
     char name[20];
     int age;
};
int main()
{
    struct s a3[20]= { {"张三", 20},{"李四",21} };
    struct s a4[10]= {"0"};
    my_memcpy(a1, a2, sizeof(a3));
    printf("%s", a4->name);
    return 0;
}


运行结果及报错内容
我的解答思路和尝试过的方法

我创建了两个新的字符数组把void指针的值放在里面用来++,但输出的结果是 ?

我想要达到的结果