我正在用C语言编写一个序列链表。
执行结果:进程返回255(0xFF)执行时间2.144s
该结构包含数组组件并使用' typedef' struct作为指针类型,它有什么问题,任何人都可以帮助我吗?
#include <stdio.h>
#define OK 1
#define ERROR 0
#define ERROR_EXIT -1
#define MAXSIZE 30
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int len;
}*SQLIST;
Status listInit(SQLIST L)
{
int len = 10;
int i = 0;
for(;i<len;i++)
{
L->data[i] = i; // There is problem here
}
L->len = 10;
return OK;
}
Status listShow(SQLIST L)
{
return OK;
}
int main()
{
SQLIST L;
listInit(L);
printf("%d\n",L->len);
return OK;
}
答案 0 :(得分:2)
您应该将结构定义为:
typedef struct
{
ElemType data[MAXSIZE];
int len;
} SQLIST, *PSQLIST;
现在,您可以像L
这样分配main()
:
PSQLIST L = malloc(sizeof(SQLIST));
在您完成此操作后不要忘记free(L)
,并将SQLIST
的所有当前实例重命名为PSQLIST
。