C++里面关于栈的一些的问题,初学小弟求解

#include<stdio.h>#include<stdlib.h>typedefintSElemType;#definemax10typedefstruct{SEle... #include <stdio.h>
#include <stdlib.h>
typedef int SElemType;
#define max 10
typedef struct
{
SElemType *base;
SElemType *top;
SElemType stacksize;
}SqStack;

int InitStack(SqStack *S)//建立栈
{
S->base=(SElemType*)malloc(100*sizeof(SElemType));
if (!S->base)
return 0;
S->top=S->base;
S->stacksize=max;
return 1;
}
int Push(SqStack &S,SElemType e)//元素入栈
{
SElemType Temp=e;
S.base=&Temp;
S.top++;
return 1;
}
int GetTop(SqStack &S,SElemType e)//取顶元素
{
SElemType Temp;
Temp=*S.base;
e=Temp;
return e;
}

void main()
{
SElemType InitStackReturn,PushReturn,IntZhi,GetReturn;
SqStack B;
InitStackReturn=InitStack (&B);
if (InitStackReturn==1)
printf("InitStack Success!!\n");

scanf("%d",&IntZhi);
PushReturn=Push(B,IntZhi);

if (PushReturn==1)
printf("Push Success!!\n");

GetReturn=GetTop(B,IntZhi);
printf("%d\n",GetReturn);
}

为什么输出值总不是我输入的数字,而是一个的地址啊?
展开
 我来答
惜需满n
2010-11-10 · TA获得超过476个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:353万
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef int SElemType;
#define max 10
typedef struct
{
SElemType *base;
SElemType *top;
SElemType stacksize;
}SqStack;

int InitStack(SqStack *S)//建立栈
{
S->base=(SElemType*)malloc(100*sizeof(SElemType));
if (!S->base)
return 0;
S->top=S->base;
S->stacksize=max;
return 1;
}
int Push(SqStack &S,SElemType e)//元素入栈
{
//SElemType Temp=e;
S.base=&e;
S.top++;
return 1;
}
int GetTop(SqStack &S,SElemType e)//取顶元素
{
SElemType Temp;
Temp=*S.base;
e=Temp;
return e;
}

void main()
{
SElemType InitStackReturn,PushReturn,IntZhi,GetReturn;
SqStack B;
InitStackReturn=InitStack (&B);
if (InitStackReturn==1)
printf("InitStack Success!!\n");

scanf("%d",&IntZhi);
PushReturn=Push(B,IntZhi);

if (PushReturn==1)
printf("Push Success!!\n");

GetReturn=GetTop(B,IntZhi);
printf("%d\n",GetReturn);
}

这样运行通过了,但没明白你的base是干什么的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
knife12
2010-11-10 · TA获得超过347个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:318万
展开全部
把 S.base=&Temp;改为:*S.base=Temp;。是把temp的值赋给了s.base所指位置,而不是把temp的地址赋给s.base这个指针。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式