|
1鱼币
本帖最后由 付笑 于 2013-8-23 15:55 编辑
=========================================================================
问题代码处:
//==================================================入栈操作
void Push(SqStack *S,SElemType e)
{
if(S->top-S->base==S->stacksize)//栈满
{
(*S).base=(SElemType*)realloc((*S).base,(*S).stacksize+STACK_INIT_SIZE);
if(!((*S).base))
{
exit(OVERFLOW);
}
(*S).top=(*S).base+(*S).stacksize;
(*S).stacksize+=STACK_INCREMENT;
}
*((*S).top)=e;
S->top++;
}
==================================================
问题:当栈满了以后,再push进去,这时会用realloc增加栈空间,可是这时候,栈里原来的数据有些会被改变,请问这是怎么
回事啊,调试的时候,一执行完realloc栈里马上就有两个元素数据改变了,请问下是什么原因??
|
|