acm题的一个runtime error的错误
这是原题http://poj.org/problem?id=1028我写的代码总是出现runtimeerror,可是觉得没有地方溢出,请问是为啥,附上代码#include...
这是原题http://poj.org/problem?id=1028
我写的代码总是出现runtime error,可是觉得没有地方溢出,请问是为啥,附上代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *string[101];
char **p;
p=string;
int number=0,sum=0;
int i;
for(i=0;i<=100;i++)
{
string[i]=(char*)malloc(sizeof(char)*71);
}
string[0]="http://www.acm.org/";
while(true)
{
char guard[10];
scanf("%s",guard);
if(guard[0]=='V')
{
number=sum;
number++;
scanf("%s",string[number]);
printf("%s\n",string[number]);
p++;
sum++;
}
else if((guard[0]=='B')&&(sum>0))
{
--sum;
--p;
printf("%s\n",*p);
}
else if((guard[0]=='F')&&(sum<number))
{
++sum;
++p;
printf("%s\n",*p);
}
else if(guard[0]=='Q')
{
break;
}
else if((guard[0]=='B')&&(sum<1))
{
printf("Ignored\n");
}
else if((guard[0]=='F')&&(sum>=number))
{
printf("Ignored\n");
}
free(guard);
}
} 展开
我写的代码总是出现runtime error,可是觉得没有地方溢出,请问是为啥,附上代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *string[101];
char **p;
p=string;
int number=0,sum=0;
int i;
for(i=0;i<=100;i++)
{
string[i]=(char*)malloc(sizeof(char)*71);
}
string[0]="http://www.acm.org/";
while(true)
{
char guard[10];
scanf("%s",guard);
if(guard[0]=='V')
{
number=sum;
number++;
scanf("%s",string[number]);
printf("%s\n",string[number]);
p++;
sum++;
}
else if((guard[0]=='B')&&(sum>0))
{
--sum;
--p;
printf("%s\n",*p);
}
else if((guard[0]=='F')&&(sum<number))
{
++sum;
++p;
printf("%s\n",*p);
}
else if(guard[0]=='Q')
{
break;
}
else if((guard[0]=='B')&&(sum<1))
{
printf("Ignored\n");
}
else if((guard[0]=='F')&&(sum>=number))
{
printf("Ignored\n");
}
free(guard);
}
} 展开
4个回答
展开全部
将 free(guard);删去
我查了下MSDN中有
The free function deallocates a memory block (memblock) that was previously allocated by a call to calloc, malloc, or realloc.
即free只能释放用calloc, malloc, realloc等函数分配的内存空间!
char guard[10];
显然guard不是!
我查了下MSDN中有
The free function deallocates a memory block (memblock) that was previously allocated by a call to calloc, malloc, or realloc.
即free只能释放用calloc, malloc, realloc等函数分配的内存空间!
char guard[10];
显然guard不是!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后free(guard)去掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
free(guard);
这个错了
这是数组,你能free?
这个错了
这是数组,你能free?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询