scanf代码运行到这一步为啥报错?

scanf代码运行到这一步为啥报错?

img

完整代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
struct book
{
    char* name;
    char* id;
    int kc;
    int state;
};
struct dconsumer
{
    char* name;
    int id;
    int xh;
};
void welcome1()
{
    printf("************欢迎进入图书管理系统*************\n");
    printf("[1]管理员界面\n");
    printf("[2]普通用户界面\n");
    printf("[3]注册信息\n");
    printf("[4]退出\n");
    printf("**********************************************\n");
}
void welcome2()
{
    printf("[1]查看已有图书\n");
    printf("[2]录入新书\n");
    printf("[3]修改已有信息\n");
    printf("[4]注销现有图书\n");
    printf("[5]催还图书\n");
    printf("[6]退出\n");
}
void welcome3()
{
    printf("[1]搜索书籍\n");
    printf("[2]借阅图书\n");
    printf("[3]归还图书\n");
    printf("[4]续借图书\n");
}

void welcome4()
{
    while (2)
    {
        printf("请输入用户名,学号,联系方式%d,%d,%d\n");
    }
}
int main()
{
    struct book book[100];
    int num;
    int xz;
    do
    {
        welcome1();
        printf("请输入登录方式的序号,选择登录\n");
        scanf("%d", &xz);
        if (xz == 1)
        {
            printf("欢迎进入管理员界面\n");
            printf("请输入序号选择功能:\n");
            welcome2();



            int m = 0;
            scanf("%d,&m");
            if (m == 1)
            {
                printf("1.查看书籍种类\n");
                printf("2.查看书籍库存\n");
                printf("3.查看书籍状态\n");
                printf("4.返回上一页\n");
            }
            else if (m == 2)
            {
                while (1)
                {

                    printf("请输入图书编号,名称,库存%d,%d,%d:\n");
                    scanf("%d,%d,%d", &book[num].id, &book[num].name, book[num].kc);
                    printf("请选择是否继续录入y/n  \n");
                    char yn;
                    scanf(" %c", &yn);
                    num++;
                    if (yn == 'y')
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
                if (m == 3)
                {
                    printf("请输入修改的图书编号,名称,库存%d,%d,%d:\n");
                    scanf("%d,%d,%d", &book[num].id, &book[num].name, book[num].kc);
                    printf("请选择是否继续修改y/n  \n");
                    char yn;
                    scanf(" %c", &yn);
                    num++;
                    if (yn == 'y')
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
                if (m == 4)
                {
                    printf("请输入注销的图书编号,名称,数量\n");
                }

            }

            while (true);
            continue;
        }
        else if (xz == 2)
        {
            printf("欢迎进入普通用户界面\n");
            welcome3();
        }
        else if (xz == 3)
        {
            printf("注册用户信息");
            welcome4();
        }
        else
        {
            break;
        }

    } while (xz >= 4);
    return 0;
}

是 scanf("%d", &m); 你写错了