inmadiu 2023-02-16 07:53 采纳率: 75%
浏览 36
已结题

插入课程信息有的地方不明白


void *insert()//插入课程信息 
{
     SUB *ptr,*subj;     
     int size=sizeof(SUB);
     char ch,ch1;
     while(ch!='0')
        {
              subj=(SUB *)malloc(size); 
              ptr=subj;
              printf("输入要插入的课程信息:\n");
              printf("\n\t\t请输入课程编号:");scanf("%d",&subj->num);   
              printf("\n\t\t请输入课程名称:");scanf("%s",&subj->name);  
              printf("\n\t\t请输入课程性质:");scanf("%s",&subj->kind);  
              printf("\n\t\t请输入总学时:");scanf("%d",&subj->stime);
              printf("\n\t\t请输入授课学时:");scanf("%d",&subj->ttime);
              printf("\n\t\t请输入实验或上机学时:");scanf("%d",&subj->etime);
              printf("\n\t\t请输入学分:");scanf("%d",&subj->score);
              printf("\n\t\t请输入开课学期:");scanf("%d",&subj->term);
              myInsert(subj);
            printf("\n添加完毕,新信息存入文件中\n");
            printf("\n继续插入请按回车\n");
            printf("\n结束添加课程按 0: [ ]\b\b");
            ch1=getchar();                    
            ch=getchar();
        }
     return head;
}

int size=sizeof(SUB); subj=(SUB *)malloc(size); 能帮忙解释一下这两句的作用吗

  • 写回答

3条回答 默认 最新

  • 量化研究所 2023-02-16 08:33
    关注

    第一行代码 int size=sizeof(SUB) 的作用是计算结构体类型 SUB 的字节大小,将其存储在变量 size 中。在这个程序中,变量 size 用于为存储 SUB 类型数据的内存分配空间。这是因为在这个程序中,需要动态分配内存来存储 SUB 类型的结构体数据。

    第二行代码 subj=(SUB *)malloc(size) 的作用是动态分配内存空间,并将指向该内存空间的指针存储在变量 subj 中。这个程序中,使用 malloc 函数分配了一个大小为 size 字节的内存空间,然后将该内存空间的首地址转换为 SUB 类型的指针,并将该指针存储在变量 subj 中。这个指针变量 subj 将被用于存储用户输入的课程信息。

    由于 SUB 类型的结构体包含不同类型的成员变量,因此需要使用动态内存分配来确保内存空间足够存储用户输入的数据。同时,由于需要动态分配内存,需要使用 malloc 函数分配空间,并且需要指定分配空间的大小,这就需要使用 sizeof 运算符来计算结构体的字节大小。最后,将分配的内存地址转换为相应的指针类型,以便后续的存储操作。
    望采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 请问如何在openpcdet上对KITTI数据集的测试集进行结果评估?
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗