为什么会栈溢出呢????

#include
void main(){
char p;
int account,i,check;
scanf("%s",p);
account=0;
while(
(p+account)!='\0'){
account++;
}
check=1;
for(i=0;i<account/2;i++)
if(p[i]!=p[account-i-1])
check=0;
if(check==1)
printf("true\n");
else
printf("false\n");

}

char p[100];

while(*(p+account)!='\0'){

第三句:char p;这里只开辟了一个字节的存储空间,而你却以%s的方式输入了多于一个字节的内容,这样就导致了越界,如果你越界后的存储空间没有被使用,理论上是不会报错的,但是你接下来定义了整型变量,刚好使用了那部分内存空间,所以导致栈溢出错误