CaptainUniverse_ 2022-03-03 23:22 采纳率: 80%
浏览 85
已结题

关于malloc()与calloc()函数

给出关键几行:


typedef int Status;

typedef struct
{
        char no[11];
        char name[20];
        char xb;
        int age;
}Student;

typedef struct
{
        Student *elem;
        int length;
}SqList;

Status createList(SqList *List)
{
        List->elem=(Student *)calloc(MAX,sizeof(Student));
       
        if(List->elem==NULL)
        {
                printf("内存分配失败!\n");
                exit(1);
        }
        List->length=0;
       
        return TRUE;
}

int main(void)
{
        SqList *List;
。。。
        if(createList(List))
        {
        printf("建立成功!\n");
        }
。。。
}
}

为什么每当运行到List->elem=(Student *)calloc(MAX,sizeof(Student));这句程序就会退出?

  • 写回答

2条回答 默认 最新

  • 开发者小峰 2022-03-04 00:29
    关注

    SqList *List;并没有创建SqList结构体,List就是所谓的野指针
    函数中你给List->elem赋值当然会出错

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

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等