永发信息网

数据结构C++内存超限怎么解决

答案:2  悬赏:70  手机版
解决时间 2021-04-10 12:41
题目:
输入第一行为测试数据组数。每组测试数据第1行输入两个整数n(1<=n<=100)、c(1<=c<=20000)分别代表停车的次数和校车容量,接下来有n行,每一行第一个数m表示有人上车还是下车(0 <= m <= 200):(1)当m=0时,后面紧跟着输入一个非负整数k,表示此时有k个人下车;(2)当m>0时,后面输入m个正整数,表示等待上车的人的编号,可能有人因车满而无法上车。

输入输出样例:
Sample Input
1
4 10
6 1 2 3 4 5 6
0 3
2 7 8
0 3

Sample Output
Case #1:
6 5 4
8 7 3

代码:
#include
using namespace std;
typedef struct
{
int *base;
int *top;
int stacksize;
} SqStack;

void InitStack(SqStack &S,int m)
{
S.base=(int*)malloc(m*sizeof(int));
S.top=S.base;
S.stacksize=m;
}
void pop(SqStack &S,int &e)
{
if(S.top!=S.base)
e=*--S.top;
}
void push(SqStack &S,int e)
{
if(S.top-S.base!=S.stacksize)
*(S.top)++=e;
}
int main()
{
int zu;
cin>>zu;
SqStack S;
for(int i=1; i<=zu; i++)
{

int n,c;
cout<<"Case #"< cin>>n>>c;
InitStack(S,c);

while(n--)
{

int s,e,num;
cin>>s;
if(s==0)
{
cin>>num;
for(int i=0; i {
pop(S,e);
cout< }
pop(S,e);
cout< }
else
{
while(s--)
{
cin>>num;
push(S,num);
}

}
}
}
}
提交到OJ上,结果内存超限50%,内存超限是什么意思,哪里出了问题啊?
最佳答案
有多组测试数据,每组都 InitStack(S,c); 分配了多次内存,每次分配没有把上次分配的内存释放。
全部回答

你的参数传递的是指针,给的参数又是常量,常量怎么能改呢,当然会内存出错了。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有益身心的益什么意思,有益身心的益是什么意
诚信汽车装饰苫布洗车(玉滨路分店)地址在什么
阅读材料,回答问题.材料一:据统计,我国每
淘宝上有小票的化妆品代购是不是真的
形容女子绝色天香的诗句
将下列各式分解因式:(1)x2-2x-3??????????
和米洗衣生活馆怎么去啊,有知道地址的么
我有一张银行卡,卡里只有1块钱,会不会报废
When I entered, I found my father on the
k352次列车3车23号靠窗吗
请问大家洗屁屁都是用温开水还是就是一般水管
手机如何关闭听筒模式,vivo手机听筒模式怎么
征兵血红细胞6.6不合格。会影响征兵吗?问题
读印光法师生平,读到最后印师念佛往生时,忍
单选题选出下列句子中“夜”的意义归类正确的
推荐资讯
弹径22毫米,长53毫米,但头上带有一个铜箍,
西北工业大学 德语专业 怎么样
怎么把彩色数码照片电子版做成老式的彩色底片
致逝去的爱情句子,宠物丢了难过的句子是
爱国诗人的名言,古代诗人写了不少反映儿童生
中国旅行社怎么样需要在区县加盟吗,
小孩是深圳户口,在内地就学,请问高考一定要
水为什么内能增加体积增大
沪JC5897
智慧农业这个股怎样
はこ什么意思???????
My father _(water)the flower now
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?