S.base=(int *)malloc(100 * sizeof(int)); if(!s.base) exit(OVERFLOW); 第二句中的!s.base什么意思?

二:删除栈的操作中;书上是e=*--S.top而不是e=*S.top--;应该是先返回栈顶元素再删除啊
2026年09月21日 00:51
有3个网友回答
网友(1):

1、申请内存可能不成功,若不成功返回NULL,
所以做一个判断,若申请不成功则退出。

2、堆栈分4种,这个堆栈应该属于
进栈:数据先进栈,再移指针,即top指针总是指向下一个未知数据
所以
出栈:先回移指针,再返回才能得到一个你想要的有效数据。

网友(2):

第一个,!s.base是判断申请内存是否成功,如果失败了,就exit了。
第二个,你说的不详细,也没有代码,我没办法解释……

网友(3):

第一个的判断就是s.base 为Null的时候 直接运行exit(..)
第二个不是很懂