数据结构线性表问题
#include<iostream.h>#include<stdlib.h>
#include <malloc.h>
#define OVERFLOW 0
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 10//线性表存储空间的初始增量
#define LISTINCREMENT 10 // ?
typedef struct
{
int * elem;// 存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量
}SqList;
SqList L;
int InitList_Sq(SqList & L)
{//构造一个新的线性表。
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
exit(OVERFLOW);//存储容量失败
L.length=0; //空表长度为0
L.listsize=LIST_INIT_SIZE;//存储初始容量
return OK;
}//InitList_Sqint
void main()
{
SqList L;
int i,n;
int e;
cout<<"输入顺序表的个数:"<<endl;
cin>>n;
int *p=(int *)malloc(n*sizeof(int));
InitList_Sq(L);
cout<<"输入线性表"<<n<<"个元素的值"<<endl;
for(i=0;i<n;i++)
{
cin>>p[i];
L.elem[i]=p[i];
// InitList_Sq(L);
}
for (int j=0;j<n;j++)
{
cout<<l.elem[j]<<endl;
}
/* cout<<endl;
L.length=i;
cout<<endl;
cout<<"输入要插入元素的值"<<endl;cin>>e;
cout<<endl;
cout<<"输入要插入的位置"<<endl;cin>>i;
// LIstInsert_Sq( L, i, e);
for(i=0;i<n+1;i++)cout<<L.elem[i];
cout<<endl;cout<<"输入要删除的位置"<<endl;cin>>i;
// ListDelete_Sq(L,i,e);
for(i=0;i<n;i++)cout<<L.elem[i];
free(p);*/
}
为什么在结构体中typedef struct
{
int * elem;// 存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量
}SqList;
int *elem在main函数输入时成了L.elem[j];求详细解答