关于数据结构创建顺序表的问题

最近在学习线性结构,发现以下问题。先贴上代码
typedef struct{
ElementType Data[MAXSIZE];
int Last;
} List;
List L, *PtrL;
然后是初始化的
1. 初始化(建立空的顺序表)
List *MakeEmpty( )
{ List *PtrL;
PtrL = (List *)malloc( sizeof(List) );
PtrL->Last = -1;
returnPtrL;
}
我想知道的就是,初始化空的列表直接给他List L, *PtrL;把指针赋过去不就好了吗,为什么还要搞出
MakeEmpty( )啊,在线等,急

MakeEmpty( )完成的工作:
1、动态申请了顺序表的空间;
2、设置表指针为-1;
3、返回了表的指针;

你的操作 List L, *PtrL;
PtrL = &L;
L.Last = -1;
也是可以的,这样使用的静态的表空间追问

恩恩,我就是这个意思,那我想知道的是,虽然你分为了动态和静态,但是不是其实这两个根本上没什么区别呢?

追答

静态分配空间是程序编译前就确定了静态表的大小和数量,动态分配空间可以在程序中实时分配静态表的大小和数量,此程序主要是可以实时分配静态表的数量,每调用一次MakeEmpty( ),可以分配一个静态表

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-28
"直接给他List L, *PtrL;把指针赋过去不就好了吗,"
有些不懂你的意思,直接给他,是给哪个他,把指针赋过去,又是谁赋给谁?追问

额,虽然你没明白我的意思,但是楼下有人明白了,但是还是很谢谢你啊

相似回答