24小时热门版块排行榜    

查看: 1508  |  回复: 8

luca_luca

铁虫 (小有名气)

[求助] 顺序栈的清空问题 已有3人参与

菜鸟一枚,现在在做顺序栈的实现,定义的结构体如下,想问下这个清空算法是什么问题?老是编译不了。谢谢~
typedef struct
{
  ElemType *elem;
  int top;
  int size;
  int increment;
   }SqStack;  
Void ClearStack_Sq(Sqstack &S)
{
   S.top=0;
   S.elem=0;
   return OK;
   }
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绝望的蜗牛

金虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
luca_luca: 金币+2, 有帮助 2015-11-27 23:11:56
栈顶栈低直接设为指针,清空就让栈顶等于栈底就行了。记住顺序栈就是两个指针,栈低指针负责定位,栈顶指针负责元素操作。任何一本数据结构教材都有讲吧

发自小木虫Android客户端
2楼2015-11-27 00:23:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
luca_luca: 金币+3, 有帮助 2015-11-27 23:11:59
S.elem=0;这一句有危险,典型的内存泄露

修改方法:
C++用delete S.elem;
C用free((void *)S.elem);
3楼2015-11-27 06:52:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luca_luca

铁虫 (小有名气)

引用回帖:
3楼: Originally posted by duotojh at 2015-11-27 06:52:49
S.elem=0;这一句有危险,典型的内存泄露

修改方法:
C++用delete S.elem;
C用free((void *)S.elem);

我的是C的,但是用free((void *)S.elem);还是不行
4楼2015-11-27 10:42:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvweizhong

铜虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
你应该把编译错误信息给贴出来,才好判断

发自小木虫Android客户端
5楼2015-11-27 12:56:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luca_luca

铁虫 (小有名气)

引用回帖:
5楼: Originally posted by lvweizhong at 2015-11-27 12:56:21
你应该把编译错误信息给贴出来,才好判断

我们用的是AnyviewC系统写的,出错永远只有下面这三个信息,蛋疼。。。
错误提示--考虑以下情况:
1.程序中可能存在大括号{}不匹配的问题!
2.自定义的全局变量或函数已经存在于主文件中!
3,内部错误!
6楼2015-11-27 14:48:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luca_luca

铁虫 (小有名气)

找到原因了,不能定义为Void型
7楼2015-11-27 23:07:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

引用回帖:
4楼: Originally posted by luca_luca at 2015-11-27 10:42:33
我的是C的,但是用free((void *)S.elem);还是不行...

这只是其中一个问题,这句不会导致编译出错,编译器最多出警告,
应该还有其他问题
8楼2015-11-27 23:15:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luca_luca

铁虫 (小有名气)

只用S.top=0就可以实现清空了,不用S.elem=0

发自小木虫Android客户端
9楼2015-11-28 00:35:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 luca_luca 的主题更新
信息提示
请填处理意见