问题遇到的现象和发生背景
在学习顺序表时创建了一个添加元素的函数,但是使用该函数后无法将顺序表中的元素进行输出
问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
#define initSize 100
typedef int DataType;
typedef struct SeqList{
DataType *data;
int length;
int size;
}SeqList;
void initSeqList(SeqList * L){
L->data=(DataType*)malloc(sizeof(DataType)*initSize);
if(L->data==NULL){
printf("初始化顺序表失败");
return;
}
L->length=0;
L->size=initSize;
}
void addElement(SeqList *L,DataType ele){
if(L->length+1<=L->size){
L->data[L->length-1]=ele;
}else{
DataType *p=L->data;
L->data=(DataType*)malloc(sizeof(DataType)*(L->size)*2);
for(int i=0;i<L->size;i++){
L->data[i]=p[i];
}
L->size=L->size*2;
free(p);
}
}
int posDelete(int pos,SeqList *L){
if(L->data==NULL){
printf("顺序表为空删除失败");
return -1;
}
if(pos<=0||pos>=L->length){
printf("输入的位置非法删除失败");
return -1;
}
for(int i=pos;L->length-1;i++){
L->data[pos]=L->data[pos+1];
}
return L->data[pos];
}
int main()
{
SeqList L;
initSeqList(&L);
addElement(&L,11);
addElement(&L,12);
addElement(&L,9);
addElement(&L,15);
addElement(&L,3);
for(int i=0;i<L.length;i++){
printf("%d",L.data[i]);
}
return 0;
}
运行结果及报错内容
我想要达到的结果
能够正常的输出添加的数据