C语言求栈中元素个数

zbbanya 2009-12-25 07:09:40
我定义了一个固定大小的栈。栈的元素为结构体,
typedef struct stack{
struct car *base;
struct car *top;
int stacksize;
}stack;
经过入站top++出栈top--操作后,现在我要求栈中还有多少个元素。为什么我用top-base会出错呢?难道不能这样减?各位高手帮帮忙啊。
...全文
1406 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
小吴2017 2011-11-07
  • 打赏
  • 举报
回复
(top-base)/ sizeof(t) 这句不用先把指针转换成int型吗?
比如((int)top - (int)base)/sizeof(t)
zbbanya 2009-12-26
  • 打赏
  • 举报
回复
谢谢各位哈,我已经解决了。求元素多少是可以这样减的。。是我进栈出栈过程中参数的传递出了点问题。
十八道胡同 2009-12-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hello0world0 的回复:]
top-base/sizeof(t)
[/Quote]
(top-base)/sizeof(t)
zbbanya 2009-12-26
  • 打赏
  • 举报
回复
不是我不贴。。代码有点长。不知道贴哪些。
zbbanya 2009-12-26
  • 打赏
  • 举报
回复
我就的stacksize应该固定把,不固定怎么判断栈满。
programs 2009-12-26
  • 打赏
  • 举报
回复
是呀,stacksize赋值为0,成功压栈后++,成功弹栈后--。
maniaiwo 2009-12-26
  • 打赏
  • 举报
回复
你写出来看看呀!
东大坡居士 2009-12-26
  • 打赏
  • 举报
回复
嘿嘿~每次进栈出栈都要改变一下stacksize,就不用算了~
sagegz 2009-12-26
  • 打赏
  • 举报
回复
没必要减,因为每次你PUSH/POP后,栈的大小都需要改变,也就是stacksize都需要变化,要不然你结构体定义的stacksize还有什么意义?
flyyyri 2009-12-25
  • 打赏
  • 举报
回复
贴代码学习一下
selooloo 2009-12-25
  • 打赏
  • 举报
回复
base赋值了没
hello0world0 2009-12-25
  • 打赏
  • 举报
回复
top-base/sizeof(t)
bobommsky 2009-12-25
  • 打赏
  • 举报
回复
可以这样减啊。。。到底出的是什么类型的错误,你贴出来!

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧