缓冲区溢出,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);
}
}
}
就是想让结构体里的成员q->name与q->next->name交换
邦邦!
最后四条语句的前两条也得修改下:
strcpy(name,q->name);
strcpy(name1,q->next->name);
不能直接用赋值语句