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].isbnisbn)!=0)
{
i++;
}
if(i>=L->length)
{
printf(""图书馆没有此图书!n"");
}
else
{
printf(""书号t书名t作者t出版社t馆存数量t价格n"");
printf(""%st 《 %s 》 t%st%st%d 册 t%s 元""L->data[i].isbnL->data[i].nameL->data[i].producterL->data[i].numL->data[i].price);
printf(""n"");
}
}
void Search_n(SqList*&L)//按书名查询
{
printf(""请输入你想查找图书的书名:"");
char name[50];
scanf(""%s""&name);
int i=0b=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].namename)==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].namename)==0)
{
printf(""%st《%s》t%st%st%d册t%s元""L->data[i].isbnL->data[i].nameL->data[i].producterL->data[i].numL->data[i].price);
printf(""n"");
}
}
}
}
void Search_w(SqList*&L)//按作者查询
{
printf(""请输入你想要查找图书的作者:"");
char writer[50];
scanf(""%s""&writer);
int i=0b=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].writerwriter)==0)
b++;
}
if(b==0)
{
printf(""图书馆没有此图书!n"");
}
else
{
printf(""%s的作品共有%d本,信息如下:n""writerb);
printf(""书号t书名t作者t出版社t馆存数量t价格n"");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].writerwriter)==0)
{
printf(""%st 《 %s 》 t%st%st%d 册 t%s 元""L->data[i].isbnL->data[i].nameL->data[i].producterL->data[i].numL->data[i].price);
printf(""n"");
}
}
}
}
void Search_p(SqList*&L)//按出版社查询
{
printf(""请输入你想要查找图书的出版社:"");
char producter[50];
scanf(""%s""&producter);
int i=0c=0;
for(i;i!=L->length;i++)
{
if(strcmp(L->data[i].producterproducter)==0)
c++;
}
if(c==0)
{
printf(""图书馆没有此图书!n"");
}
else
{
printf(""%s的作品共有%d本,信息如下:n""producterc);
printf(""书号t书名t作者t出版社t馆存数量t价格n"");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].producterproducter)==0)
{
printf(""%st 《 %s 》 t%st%st%d 册 t%s 元""L->data[i].isbnL->data[i].nameL->data[i].producterL->data[i].numL->data[i].price);
printf(""n"");
}
}
}
}

解决方案

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

 printf(""%st《%s》t%st%st%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个,显然指针越界了。

解决方案二:
0x0000007b
这种指针指向一个很小的数字的,都是内存没有初始化造成的。

你的代码太乱,也没法调试。要想知道准确的原因,你要么将完整代码贴在codepad.org,在此贴出链接。

要么用f5方式调试运行,贴出出错的行。

解决方案三:
设置断点单步调试。多检查指针

解决方案四:
代码错误太多,连录入都不对。
你的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(""%st《%s》t%st%st%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"");
}
}
}
}

时间: 2024-08-31 11:15:08

int-如下代码,提示 处有未经处理的异常: 求助的相关文章

0x000F6C08 处有未经处理的异常

问题描述 0x000F6C08 处有未经处理的异常 #includeusing namespace std; int main(){ char *str = ""Linux""; *str = 'T'; //这句话出错了 cout << str << endl; return 0;}错误:0x000F6C08 处有未经处理的异常(在 hannuota bahuanghou.exe 中): 0xC0000005: 写入位置 0x000FDA8C

c++- 0x7574812f 处有未经处理的异常

问题描述 0x7574812f 处有未经处理的异常 HVSnapContinuous.exe 中的 0x7574812f 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0033f3e4 处的 cv::Exception. mfc画完矩形后onlbuttonup之后单步调试在 int CWinThread::Run() { ASSERT_VALID(this); _AFX_THREAD_STATE* pState = AfxGetThreadState(); // for

异常处理- 0x01291dd6 处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突

问题描述 0x01291dd6 处有未经处理的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突 void results(CvSeq* conto,IplImage pContour) { for (int i=0;itotal;i++) { CvPoint p=(CvPoint*)cvGetSeqElem(conto,i); cout<<"("<x<<","<y<<")&quo

vs2010 opengl-0x0001af3a 处有未经处理的异常: 0xC0000005: Access violation

问题描述 0x0001af3a 处有未经处理的异常: 0xC0000005: Access violation opengl程序在自己的电脑vs2010上面运行出错,在别人电脑没问题,重新配置了n次glew都不行,每次都弹出:0x0001af3a 处有未经处理的异常: 0xC0000005: Access violation,并且自动打开gs_support.c跳到 cookie = systime.ft_struct.dwLowDateTime;! 解决方案 实在是没办法,试着重新安装了VS2

0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常:

问题描述 0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常: 0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xCCCCCCCC 时发生访问冲突. 解决方案 0xCCCCCCCC - 指针操作异常等. 解决方案二: 你直接编译器打开,查看断点位置,调试 解决方案三: 一看0xCCCCCCCC就知道,是你的内存没有初始化造成的. Visual C++为了调试的方便

hough1.exe 中的 0x7c812afb 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0011d920 处的 cv::Exc

问题描述 在opencv中输入一段简单程序,出现图片所示问题,此问题会产生什么影响,有什么解决方法,如何避免此类问题?欢迎各位解答.

System.AccessViolationException类型的未经处理的异常在System.Data.dll中发

System.AccessViolationException"类型的未经处理的异常在 System.Data.dll 中发生.其他信息:尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 错误背景: 操作系统:编程环境:VS2013:  语言:VB.net:  数据库:SQLserver2008 做数据库连接时,发生的错误: 错误提示为: 说明:用VB.net连接SQLServer数据库 第一种情况: 连接字符串为"Server=(Local);Database=charge_s

了解C++编程中指定的异常和未经处理的异常_C 语言

noexceptC++11:指定函数是否可能会引发异常. 语法 ReturnType FunctionName(params) noexcept; ReturnType FunctionName(params) noexcept(noexcept(expression); 参数 表达式 计算结果是 True 或 False 的常量表达式.无条件版本相当于 noexcept(true). 备注 noexcept(及其同义词 noecept(true))指定函数绝不会引发异常,或允许从异常直接或间接

硬件-有未经处理的异常0xc0000005,读取位置0x00a97000发生错误

问题描述 有未经处理的异常0xc0000005,读取位置0x00a97000发生错误 有未经处理的异常0xc0000005,读取位置0x00a97000发生错误 解决方案 代码中有指针操作不合法,你多看看你的代码是否有指针越界等操作行为 解决方案二: 0x00AE18F8 处有未经处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突.OSG 有未经处理的异常: 0xC0000005: 读取位置 0xcdcdcdcd 时发生访问冲突0x5afd57aa处有未经处理的