m0_71355799 2022-12-01 22:30 采纳率: 66.7%
浏览 15
已结题

C6385 正在从"pstu"读取无效数据

C6385 正在从"pstu"读取无效数据


void Built_shitiKu()
{
    int i, num;
    xuanti* pstu;
    printf("输入试题数目: \n");
    scanf_s("%d", &num);
    fflush(stdin);
    pstu = (xuanti*)malloc(num * sizeof(xuanti));//动态分配内存
    if (pstu == NULL)
    {
        printf("没有足够的内存空间! \n");
    }
    else
    {
        for (i = 0; i <= num; i++)
        {//输入试题
            printf("第%d道试题:", i + 1);
            gets_s(pstu[i].a);
            fflush(stdin);//清空键盘缓冲区
            printf("\n");
        }
        WriteToFile(pstu, num);//将pstu所指向的信息写入文件中
        memset(pstu, 0, num * sizeof(xuanti));//将pstu所指向的内存块清0
        ReadFromFile(pstu, num);//从文件中读取信息到pstu所指向的内存块中
        printf("试题列表;\n");
        for (i = 0; i < num; i++)
        {//输入试题
            printf("第%d道试题:", i + 1);
            printf("%s", pstu[i].a);
            printf("\n");
        }
        free(pstu);//释放动态分配的内存
    }
}
  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-12-01 22:39
    关注

    for (i = 0; i <= num; i++) 改成 for (i = 0; i < num; i++)
    不能等于 num

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月4日
  • 已采纳回答 12月2日
  • 创建了问题 12月1日