- 论坛徽章:
- 0
|
采用顺序存储结构的栈的初始化时,我看到很多代码大致是这个样子:
- #include<stdio.h>
- #include<stdlib.h>
- #include<malloc.h>
- #define STACKSIZE 100
- typedef struct{
-
- int top;
- }SeqStack,*PSeqStack;
- PSeqStack Init_SeqStack()
- {
- PSeqStack S;
- S=(PSeqStack)malloc(sizeof(SeqStack));
- if(S!=NULL)
- S->top=-1;
- return S;
- }
复制代码 在初始化栈时,需要为栈分配空间,而采用了malloc(sizeof(SeqStack))的方法。
既然在用结构体定义一个栈的时候,已经用了int data[STACKSIZE]这样一个数组,该数组里面的每个元素就可以当做栈的一个存储位置,
最多再考虑一个表示栈顶的指针,就可以存储一个栈了。
我的意思,一个数组和一个指向栈顶的指针,就可以存储一个栈,为什么要用(PSeqStack)malloc(sizeof(SeqStack))的方式来给即将存储的栈开辟空间呢?
谢谢!
|
|