源码链接在这里。在查找时出现12.exe 中的 0x54f114cf (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x0000007c 时发生访问冲突。目前找不到原因,谢谢了。
http://codepad.org/UuPofNQA
不好意思,刚才看错了
拿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个,显然指针越界了。
zhi指针越界,单步调试一下。看具体错误语句
代码错误太多,连录入都不对。
你的L没有初始化
InitList只是初始化了list,其中
ElemType data[MaxSize],data1[MaxSize];
这两个数组都没有初始化。
源代码要大改。
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].writer, L->data[i].producter, L->data[i].num, L->data[i].price); //修正行
printf("\n");
}
}
}
}
printf 6个可变参数,少了个 L->data[i].writer,不细心哈