缓冲区溢出,1字节将在偏移n后开始写入

缓冲区溢出,1字节将在偏移n后开始写入

//职工信息
typedef struct work
{
    int id;            //工号
    char name[8];      //姓名
    int wages;         //工资
    int bonus;         //奖金
    int deduction;     //扣款
    int money;         //实发工资
    struct work* next; //链表
}workers;

//表头
workers* Listhead()
{
    workers* head = (workers*)malloc(sizeof(workers));//动态内存申请 指针变成变量
    if (head != NULL)//消除vs警告
    {
        head->next = NULL;//初始化
        return head;
    }
    return 0;
}

//排序
void sort(workers* head)
{
    for (workers*p=head; p != NULL; p = p->next)
    {
        for (workers*q=head->next; q->next != NULL; q = q->next)
        {
            if (q->money > q->next->money)
            {
                char name[8] = { 0 };
                char name1[8] = { 0 };
                name[8] = q->name;
                name1[8] = q->next->name;
                strcpy(q->name, name1);
                strcpy(q->next->name, name2);
            }
        }
    }

img

就是想让结构体里的成员q->name与q->next->name交换
邦邦!

最后四条语句的前两条也得修改下:
strcpy(name,q->name);
strcpy(name1,q->next->name);
不能直接用赋值语句