李枭龙 2015-01-06 14:17 采纳率: 100%
浏览 2252
已采纳

如下代码,提示 处有未经处理的异常: 求助

在查找时出现12.exe 中的 0x102214cf (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x0000007b 时发生访问冲突。
查找的代码如下
void Search_i(SqList*&L)//按书号查询
{
printf("请输入你想要查找图书的书号:");
char isbn[50];
scanf("%s",&isbn);
int i=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
{
i++;
}
if(i>=L->length)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
printf("%s\t 《 %s 》 \t%s\t%s\t%d 册 \t%s 元",L->data[i].isbn,L->data[i].name,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
void Search_n(SqList*&L)//按书名查询
{
printf("请输入你想查找图书的书名:");
char name[50];
scanf("%s",&name);
int i=0,b=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].name,name)==0)
b++;
}
if(b==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;i!=L->length;i++)
{
if(strcmp(L->data[i].name,name)==0)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}
void Search_w(SqList*&L)//按作者查询
{
printf("请输入你想要查找图书的作者:");
char writer[50];
scanf("%s",&writer);
int i=0,b=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].writer,writer)==0)
b++;
}
if(b==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("%s的作品共有%d本,信息如下:\n",writer,b);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].writer,writer)==0)
{
printf("%s\t 《 %s 》 \t%s\t%s\t%d 册 \t%s 元",L->data[i].isbn,L->data[i].name,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}
void Search_p(SqList*&L)//按出版社查询
{
printf("请输入你想要查找图书的出版社:");
char producter[50];
scanf("%s",&producter);
int i=0,c=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].producter,producter)==0)
c++;
}
if(c==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("%s的作品共有%d本,信息如下:\n",producter,c);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].producter,producter)==0)
{
printf("%s\t 《 %s 》 \t%s\t%s\t%d 册 \t%s 元",L->data[i].isbn,L->data[i].name,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}

  • 写回答

5条回答 默认 最新

  • threenewbee 2015-01-06 16:26
    关注

    不好意思,刚才看错了
    拿VC++帮忙调试了下。

     printf("%s\t《%s》\t%s\t%s\t%d册\t%s元", L->data[i].isbn, L->data[i].name, L->data[i].writer, L->data[i].producter, L->data[i].num, L->data[i].price);
    

    这里少了作者参数,你的格式有6个,后面的参数只有5个,显然指针越界了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流