永发信息网

关于栈中赋值的区别

答案:1  悬赏:0  手机版
解决时间 2021-05-02 05:53

#include"stdio.h"
#include"string.h"
#include"stdlib.h"

#define stack_init_size 100
#define increment 10

typedef struct{
char *base;
char *top;
int stacksize;//以元素为单位;
}Stack;


int init(Stack &s)
{
s.base=(char *)malloc(stack_init_size*sizeof(char));
if(!s.base)
exit(-2);
s.top=s.base;
s.stacksize=stack_init_size;
return 1;
}


int GetTop(Stack s,int &e)
{
if(s.top==s.base)
return 0;
e=*(s.top-1);
return 1;
}


int Pop(Stack &s,int &e)
{
if(s.top==s.base)
return 0;
e=*--s.top;
return 1;
}


int Push(Stack &s,int e)
{
if(s.top-s.base>=s.stacksize)
{
s.base=(char *)realloc(s.base,(stack_init_size+increment)*sizeof(char));
if(!s.base)
exit(-2);
s.top=s.base+s.stacksize;
s.stacksize+=increment;
}
*s.top++=e;
return 1;
}
void main()
{
int i,e;
Stack stack;
init(stack);
for(i=1000;i<1004;i++)//若改为for(i=100;i<104;i++),两者的区别
Push(stack,i);
for(i=1;i<4;i++)
{
Pop(stack,e);
printf("%d ",e);
}
}

for(i=1000;i<1004;i++)//若改为for(i=100;i<104;i++),两者的区别

此时for(i=1000;i<1004;i++)

for(i=100;i<104;i++);

究竟是什么问题

最佳答案

s.base=(char *)realloc(s.base,(stack_init_size+increment)*sizeof(char));


内容分配问题

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦幻西游70WJB男头40防,无石头什么价钱
养老保险退休
广东电视体育频道NBA直播的背景音乐
急性肠胃炎应注意什么?这么补? 和豆汁对胃
漫游选择活动20首饰好呢还是45的好 如何取舍
关于梦幻合法宝问题?
有谁知道去医院复印病历得拿什么证件了?谢谢
火焰之纹章游戏下载
赛扬420超频
今年什么专业最火
谁12点帮我开通牧场
天彩写真机多少钱一台,没有味道的户外写真机
岐山手工臊子面地址在什么地方,想过去办事
为什么在打QQ游戏打斯诺克的时候会出现调试错
火影忍着157什么时候出?
推荐资讯
今年春晚 会出现什么人
紫金王朝能持续几个赛季
苹果 ipod touch4代
G324/腾达路(路口)地址在什么地方,想过去办
小萍发缘地址在什么地方,想过去办事
qq家园和qq校友图标怎么隐藏?
描述厮守终生的诗句,寻找表达两情相悦却又不
如何去忘掉一个曾经爱过的人
为什么我的淘宝老是发货不行?
梅开二度是什么
关于竞选的名言警句,和竞选有关的名言
为什么每当我认真对待一件事时 结局往往很凄
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?