#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW -2
#define TRUE 1
#define ERROR 0
#define OK 1
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
int InitList(SqList *L)
{
L->elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
if(!(L->elem))exit(OVERFLOW);
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
int ListLength(SqList L)
{
if(L.length<=0)
return ERROR;
else
return (L.length);
}
int GetElem(SqList *L,int i,int *e)
{
if((L->elem)!=NULL)
return ERROR;
if(i<1||i>L->length)
return ERROR;
*e=*(L->elem+(i-1));
return OK;
}
int ListDelete(SqList *L, int i, int *e)
{
int *p,*q;
if ((i<1)||i>L->length) return ERROR;
p=&(L->elem[i-1]);
*e=*p;
q=L->elem+L->length-1;
for (++p; p<=q; ++p)
*(p-1)=*p;
--L->length;
return OK;
}
int main()
{
SqList L;
InitList(&L);
int i;
for(i=0;i<5;i++)
{
scanf("%d",&(L.elem[i]));
L.length++;
}
for(i=0;i<5;i++)
{
printf("%d",L.elem[i]);
}
int *a=0;
GetElem(&L,2,&a);
printf("%d",a);
return 0;
}
GetEmle函数将元素值用指针e返回,大神帮我看看为啥取不出来?
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW -2
#define TRUE 1
#define ERROR 0
#define OK 1
typedef struct
{
int *elem;
int length;
int listsize;
}SqList;
int InitList(SqList *L)
{
L->elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
if(!(L->elem))exit(OVERFLOW);
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
int ListLength(SqList L)
{
if(L.length<=0)
return ERROR;
else
return (L.length);
}
int GetElem(SqList *L,int i,int *e)
{
if((L->elem)!=NULL)
return ERROR;
if(i<1||i>L->length)
return ERROR;
*e=*(L->elem+(i-1));
return OK;
}
int ListDelete(SqList *L, int i, int *e)
{
int *p,*q;
if ((i<1)||i>L->length) return ERROR;
p=&(L->elem[i-1]);
*e=*p;
q=L->elem+L->length-1;
for (++p; p<=q; ++p)
*(p-1)=*p;
--L->length;
return OK;
}
int main()
{
SqList L;
InitList(&L);
int i;
for(i=0;i<5;i++)
{
scanf("%d",&(L.elem[i]));
L.length++;
}
for(i=0;i<5;i++)
{
printf("%d",L.elem[i]);
}
int *a=0;
GetElem(&L,2,&a);
printf("%d",a);
return 0;
}
GetEmle函数将元素值用指针e返回,大神帮我看看为啥取不出来?


