程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> int-如下代碼,提示 處有未經處理的異常: 求助

int-如下代碼,提示 處有未經處理的異常: 求助

編輯:編程綜合問答
如下代碼,提示 處有未經處理的異常: 求助

在查找時出現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");
}
}
}
}

最佳回答:


不好意思,剛才看錯了
拿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個,顯然指針越界了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved