初始化链栈,为 top 指针申请一节点,申请之后却不用,而将 top 指针指向NULL??求大神指教这个申请节点的操作的作用何在?
初始化链栈,为 top 指针申请一节点,申请之后却不用,而将 top 指针指向NULL??求大神指教这个申请节点的操作的作用何在?
代码如下:
typedef int Status;
typedef int SElemType; /* SElemType类型根据实际情况而定,这里假设为int */
/* 链栈结构 */
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct
{
LinkStackPtr top;
int count;
}LinkStack;
/* 构造一个空栈S */
Status InitStack(LinkStack *S)
{
//为何此处要申请一个节点?作用何在?申请之后为何不用了?
S->top = (LinkStackPtr)malloc(sizeof(StackNode));
if(!S->top)
return ERROR;
S->top=NULL;
S->count=0;
return OK;
}
我们老师说,应该指向 S->next == NULL;
说如果这样会内存泄露。求助啊