段错误,内存哪里分配出现问题啊?求大神
#include<stdio.h>
#include<string.h>
int main(){
char *c1,*c2;
int flag=0;
for(;;){
printf("请输入你的账号:\n");
scanf("%s",c1);
printf("请输入你的密码:\n");
scanf("%s",c2);
flag++;
if(strcmp(c1,"admin")==0&&strcmp(c2,"123456")==0){
printf("恭喜你,登陆成功\n");
break;
}
else if(flag==3){
printf("对不起,你账号已被锁定,请联系管理员…\n");
break ;
}
else printf("输入账号或密码错误,请重新输入\n");
}
return 0;
}
[解决办法]
char *c1,*c2;
你这压根就没分配内存啊
改成
char c1[100];
char c2[100];吧
[解决办法]
char *c1,*c2;
只是声明,还没有分配内存空间。这样是个野指针(不知道指向什么地方),你指针这样来解引用访问会出现访问不该访问的地方,因而会出现段错误。
[解决办法]
应该是指针的问题,你试试