将顺序表初始化为1-100,并取第64个,在main中return时出错
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
// 创建顺序表
typedef struct
{
int* elem; //声明动态数组
int length; //记录表的当前长度
int size; //记录表的分配容量(最大长度)
}SqList;
// 初始化顺序表
SqList Initlist(SqList &L)
{
L.elem = (int*)malloc(sizeof(int)); //构造一个空的顺序表,动态申请存储空间
if (!L.elem) //如果申请失败,作出提示并安全退出程序
{
printf("初始化失败!");
exit(0);
}
L.length = 0; //表的初始长度为0
L.size = MAXSIZE; // 表的存储空间(最大长度)为MAXSIZE
return L;
}
//取值
int GetElem(SqList L, int i, int& e)
{
if (i < 1 || i > L.length) //判断i的值是否合理(是否为负数或是否超出表长),不合理返回ERROR
{
printf("获取值失败!");
exit(0);
}
e = L.elem[i - 1]; // elem[i - 1]单元存储第i个数据元素
return e;
}
// 赋值
void get_value(SqList &L)
{
int i, n;
//scanf_s("%d",&n);
for (i = 0; i < L.size; i++)
{
L.elem[i] = i + 1;
L.length++;//长度随赋值情况增加
}
}
int main(void)
{
int i= 64; //取值第64个元素
int e , t;
SqList L; // 声明顺序表
Initlist(L); //初始化
get_value(L); //赋值
t = GetElem(L, i, e); //取值
printf("%d", t);
free(L.elem);
return 0;
}
下面是报错: