输入xxx为什么弹出unhandled exception in S.exe:0XC0000005:Access Violation?

#include "stdio.h"
#include "string.h"
main()
{
char name;
printf("Input a name:");
scanf("%s",&name);
if(strcmp(name,"xxx"))
printf("handsome");
else
printf("ugly");
system("pause");
}

Access Violation(非法访问),General Protection Fault(一般保护性错误)或者Invalid Page Fault(无效页面错误),虽然说法不一样,但本质上总是由同一种错误引起的。Access Violation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。
Access violation at address <十六进制值>
in module <应用程序名>
Read of address <十六进制值>

“Access violation at address 00000000.Read of adress 00000000.意思是:在地址 00000000 存取违反,禁止对地址00000000的读取

出现access violation at address 00000000. read of address 00000000.原因是:没有运行服务端软件,所以客户机会提示"Access violation at address 00000000, read of address 0000000",开启服务端程序或检查网线即可解决。

另外,可能出现这个问题的原因是因为你是在WINRAR的窗口中运行程序,而程序又找不到主要文件引起的。

解决方法:)~~
尝试用兼容方式运行该程序.右键点击图标——属性——兼容型——选中“以兼容方式运行该程序”——下面的选框中可以选择以95、98、NT4.0或2000模式来运行。推荐选择98试试看。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-13
应该改为
char *name = NULL;
...
scanf("%s",name);
最开始你定义变量错了,应该定义成字符串而不是字符。
相似回答