| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2669 人关注过本帖
标题:请问如何将一个栈置空啊?
只看楼主 加入收藏
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
请问如何将一个栈置空啊?

#include<stdio.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef struct{
    int *base;
    int *top;
    int stacksize;
}SqStack;void ClearStack(SqStack &S)
  {
      S.top = S.base ;
      S.stacksize = STACK_INIT_SIZE;
}
这要这样就可以了吗?感觉不太对,求指教~
      
搜索更多相关主题的帖子: include top void 如何 
2012-10-14 22:01
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
什么代码呀,宏定义后面还有分号,定义的函数入参用"&"

总有那身价贱的人给作业贴回复完整的代码
2012-10-14 22:13
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:3 
你这样根本就没有将栈里面的数据清除啊

你做的只是将栈底、栈顶指针指向了同一个

如果要真正的清空,将申请来的存储空间释放了就OK...free()
2012-10-14 22:17
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
不好意思~,宏定义部分是书上的,照着打了,没反应过来,应该是打印错了。那个&我们老师上课提过,是C++中的引用型参数,除了这个都是用C语言写。
2012-10-14 22:23
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
回复 3楼 爱闹的娃
求教:具体应该怎么写呢?不能全部都free掉吧
2012-10-14 22:27
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:5 
回复 5楼 qiankai
就看要怎要怎样释放那些数据了,
如果想一个一个的去释放,那就在栈顶那里,出一次你就free()一次

如果想一次性解决的话,就free(栈底指针申请来的内存)..值得注意的是,在这里要看看

在存储的数据中还有没有指针,如果有,你还得先释放..然后再释放栈底指针申请来的内存
2012-10-15 09:11
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:5 
&符号是C++中的,但并不是C语言中的,用在.c的文件里肯定是编译不通过的,希望你用的是.cpp文件,但与此同时,还是建议你不要使用,因为这是C代码不要写混了!
至于清空栈,肯定是要释放内存的,而且要每一个节点都要释放,以免发生内存泄露!
2012-10-15 10:18
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:5 
你的实现思路基本是正确的,解决宏定义错误即可。
具体实现时,你这儿少了一个空间,如果是整体空间,这种写法没错,如果是node空间,需要一个个释放。

[ 本帖最后由 silent_world 于 2012-10-15 18:06 编辑 ]
2012-10-15 18:04
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
回复 7楼 小糊涂神c30
可是我们数据结构的书上就是这样用&的,而且还注明了是C语言版,还是清华大学出版社出版的,真是让人费解啊~
2012-10-15 23:43
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
谢谢各位的指导,我差不多明白了
2012-10-15 23:46
快速回复:请问如何将一个栈置空啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017393 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved