m0_65712630 2022-09-09 19:54 采纳率: 100%
浏览 58
已结题

数据结构 为什么一直说我L未初始化

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10

typedef int Status;
typedef int ElemType;

typedef  struct {
ElemType *elem;
int length;
int listsize;
}SqList;

Status InitList_Sq(SqList *L);
Status ListInsert_Sq(SqList *L, int i, ElemType e);
void PrintList(SqList *L);

Status InitList_Sq(SqList L) {
L->elem = (ElemType
)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if (!L->elem)
exit(OVERFLOW);
L->length = 0;
L->listsize = LIST_INIT_SIZE;
return OK;
}

void PrintList(SqList *L) {
for (int i = 0; i < L->length - 1; i++) {
printf("%c", L->elem[i]);
}
}

int main() {
SqList sq;
SqList* L = &sq;
Status InitList_Sq(L);
L->length = 6;
L->elem[0] = 1;
L->elem[1] = 2;
L->elem[2] = 3;
L->elem[3] = 4;
L->elem[4] = 5;
L->elem[5] = 6;
void PrintList(L); 
return OK;
}

  • 写回答

3条回答 默认 最新

  • 来灵 2022-09-09 20:02
    关注

    代码给你稍微修改了下

    #include <stdio.h>
    #include <malloc.h>
    #include <stdlib.h>
    #define OVERFLOW -2
    #define OK 1
    #define ERROR 0
    #define LIST_INIT_SIZE 10
    #define LISTINCREMENT 10
    
    typedef int Status;
    typedef int ElemType;
    
    typedef  struct {
        ElemType* elem;
        int length;
        int listsize;
    }SqList;
    
    Status InitList_Sq(SqList* L);
    Status ListInsert_Sq(SqList* L, int i, ElemType e);
    void PrintList(SqList* L);
    
    Status InitList_Sq(SqList* L) {
        L->elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));
        if (!L->elem)
            exit(OVERFLOW);
        L->length = 0;
        L->listsize = LIST_INIT_SIZE;
        return OK;
    }
    
    void PrintList(SqList* L) {
        for (int i = 0; i < L->length - 1; i++) {
            printf("%c", L->elem[i]);
        }
    }
    
    int main() {
        SqList sq;
        SqList* L = &sq;
        InitList_Sq(L);
        L->length = 6;
        L->elem[0] = 1;
        L->elem[1] = 2;
        L->elem[2] = 3;
        L->elem[3] = 4;
        L->elem[4] = 5;
        L->elem[5] = 6;
        PrintList(L);
        return OK;
    }
    

    如有帮助,采纳一下呗

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

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
  • ¥15 安装ubantu过程中第一个vfat 文件挂载失败
  • ¥20 GZ::CTF如何兼容一些靶机?
  • ¥15 etcd集群部署问题
  • ¥20 谁可以帮我一下问一下各位
  • ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
  • ¥15 QFILHelper怎么恢复全字库,提示进程已完成,只能恢复分区文件
  • ¥150 求 《小魔指》街机游戏机整合模拟软件
  • ¥20 你好,我想问下easyExcel下拉多选,或者复选框可以实现吗
  • ¥20 双非跨考工科哪个专业和方向就业前景好?