无法正常调用ListScanf函数
#include <stdio.h>
#include <stdlib.h>
#define InitSize 10
typedef struct {
int *data; //指示动态分配数组的指针
int MaxSize;//顺序表的最大容量
int length;//顺序表当前的长度
} SeqList;
//函数声明
bool InitList(SeqList &L); //初始化
bool ListScanf(SeqList &L); //往顺序表中写入数据
void PrintSqList(SeqList L); //打印顺序表
//初始化
bool InitList(SeqList &L) {
//用 malloc 函数申请一片连续的存储空间
L.data = (int *) malloc(InitSize * sizeof(int));
if (L.data == NULL)
return false;
L.length = 0;
L.MaxSize = InitSize;
return true;
}
bool ListScanf(SeqList &L){
int value;
for(int j=0;j<L.MaxSize;j++){
scanf("%d",&value);
if(value != -1){
L.data[j]=value;
L.length++;
}else return true;
}
}
void PrintSqList(SeqList L) {
if (L.data == NULL || L.length == 0)
printf("这是一个空表!");
else {
//循环打印
printf("开始打印顺序表\n");
for (int i = 0; i < L.length; i++) {
printf("Data[%d]==%d\n", i, L.data[i]);
}
printf("打印结束!\n");
}
}
int main() {
SeqList L;
bool InitList(&L);
bool ListScanf(&L);
PrintSqList(L);
return 0;
}
运行结果及报错内容
这是一个空表!