这样写堆栈错在哪?

unicornwhy 2006-02-28 02:30:39
#include <iostream>
using namespace std;

typedef struct ArrayStack{
int List[50];
int top;
}*Stack;

void InitStack(Stack& s)
{
s->top=-1;
}

void push(Stack& s,int e)
{
if(s->top==49)
cout<<"FULL"<<endl;
else
{
s->List[++s->top]=e;
}
}

int main()
{
Stack s;
InitStack(s);
push(s,5);

return 0;
}
...全文
105 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吃狼的豆腐 2006-02-28
  • 打赏
  • 举报
回复
定义
struct ArrayStack{
int List[50];
int top;
};
c++中:
ArrayStack stack;
c中:
struct ArrayStack stack;
或者
typedef struct ArrayStack{
int List[50];
int top;
} Stack;
就可以了
unicornwhy 2006-02-28
  • 打赏
  • 举报
回复
谢谢大家指点
typedef struct ArrayStack{
int List[50];
int top;
};
结构这样写,那初始化怎么写呢
Camelh 2006-02-28
  • 打赏
  • 举报
回复
Stack s;只是定义了一个指针哈
问题就是上面几位说的你在定义结构的时候多加了一个*号
ycy589 2006-02-28
  • 打赏
  • 举报
回复
Stack& s,是引用吗?
du51 2006-02-28
  • 打赏
  • 举报
回复
void InitStack(Stack& s)
{
s->top=-1;
}

//s本身都为空,哪来的s->top=-1
ra_zy 2006-02-28
  • 打赏
  • 举报
回复
typedef struct ArrayStack{
int List[50];
int top;
}*Stack;

为什么要加一个*号?

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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