typedef int SElemType;
typedef int Status;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status Push(SqStack *s, SElemType e)
{
if(s->top - s->base >= s->stacksize)//栈满
{
s->base = (SElemType *)realloc(s->base, (s->stacksize + STACKINCREMENT) * sizeof(SElemType));
if(!s->base)
{
puts("存储空间分配失败!");
return Error;
}
s->top = s->base + s->stacksize;//修改栈顶位置
s->stacksize += STACKINCREMENT;//修改栈长度
}
*s->top++ = e;
return Ok;
}
请问各位大佬 我对 if(s->top - s->base >= s->stacksize) 判断栈满 还有s->top = s->base + s->stacksize;//修改栈顶位置 不太理解
s->base 与s->top 应该是一个 int 类型的指针 而s->stacksize则是int 类型
怎么这两种还可以做比较 做加减运算
typedef int Status;
typedef struct
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status Push(SqStack *s, SElemType e)
{
if(s->top - s->base >= s->stacksize)//栈满
{
s->base = (SElemType *)realloc(s->base, (s->stacksize + STACKINCREMENT) * sizeof(SElemType));
if(!s->base)
{
puts("存储空间分配失败!");
return Error;
}
s->top = s->base + s->stacksize;//修改栈顶位置
s->stacksize += STACKINCREMENT;//修改栈长度
}
*s->top++ = e;
return Ok;
}
请问各位大佬 我对 if(s->top - s->base >= s->stacksize) 判断栈满 还有s->top = s->base + s->stacksize;//修改栈顶位置 不太理解
s->base 与s->top 应该是一个 int 类型的指针 而s->stacksize则是int 类型
怎么这两种还可以做比较 做加减运算