结构体数组信息储存修改问题

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

我写的是飞机订票管理系统,结构体链表储存,订票模块出现报错

问题相关代码,请勿粘贴截图
typedef struct passenger
{
    char user[20];
    char pid[20];        //身份证
    char pname[10];        //姓名
    char password[20];    //密码
    string fid[50];   //已订购航班号
    int num = 0;        //订购航班数
    struct passenger* next;
}Passenger;
//下面是订票模块
void bookTicket(Passenger *head1,char name[]) {
    Flight* head = fscanF();//读入航班信息
    Flight* current = head->next;
    char fid[21];
    int flag = 0;
    getchar();
    printf("请输入航班号:");
    scanf("%s", fid);
    while (current) {
        if (strcmp(current->fid,fid)==0 )
        {
            current->leftTicket = current->leftTicket - 1;
            
            flag = 1;
            head1->fid[head1->num++] = fid;//保存航班号到乘客结构体数组,应该是这行报错
            break;
        }
        current = current->next;
    }
    //fprintF(head);
    if (flag == 0) {
        system("cls");
        printf("查询不到!");
    }
  
}
运行结果及报错内容

img

我的解答思路和尝试过的方法

尝试过char二维,依旧是访问权限问题

我想要达到的结果

没有报错,正常储存