ZW钟文 2021-02-20 15:04
浏览 15

在程序运行过程中这个片段p1->titile等成员的值在被赋值后是正确的但过个几个语句又变了?

student *luru()    //从txt文件中读取全部学生信息 
{
    fflush(stdin);    //清空缓冲区
    char temp0[200];
    FILE *fp;
    printf("请输入毕业设计信息文本文档的地址(path)    示例:C:\\\\output\\\\毕业设计信息.txt\n");
    while(1)
    {
        scanf("%s",temp0);
        getchar();
        fp=fopen(temp0,"r");
        if(fp==NULL)
        {
            printf("地址错误,请重新输入正确的文本文档地址\n");
        }
        else
        break;
    }
    student *p1,*p2,*head;
    int n=0;
    head=NULL;
    p1=p2=(student *)malloc(sizeof(student));
    while(fgets(temp0,160,fp)!=NULL)
    {
        n++;
        char *temp;
        temp=strtok(temp0,"\t");    ****************************************
        strcpy(p1->num,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->cla,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->major,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->title,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->score,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->num1,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->na,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->clf,temp);
        temp=strtok(NULL,"\t");
        strcpy(p1->jud,temp);
        if(n==1)
        head=p1;
        else
        p2->next=p1;
        p2=p1;
        p1=(student *)malloc(sizeof(student));  *******************************
    }
    p2->next=NULL;
    Sleep(15000);
    fclose(fp);
    return head;
}


急需大神回答为什么在建立动态链表的过程中结构体指针p1中的数据在被赋值后会变化!!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 Html备忘录页面制作
    • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
    • ¥20 数学建模来解决我这个问题
    • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
    • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
    • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
    • ¥30 NIRfast软件使用指导
    • ¥20 matlab仿真问题,求功率谱密度
    • ¥15 求micropython modbus-RTU 从机的代码或库?
    • ¥15 django5安装失败