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日

悬赏问题

  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题