我在主函数中用7初始化了q.size,然后首先将q.size的值打印为7,但是在scanf()语句之后,q.size的值变为0。为什么会这样以及如何解决它???
#include <stdio.h>
#include <stdlib.h>
struct sample
{
int size;
int rear;
int front;
};
int main()
{
struct sample q;
q.size=7;
char Ans;
printf("%d\n",q.size);
printf("Enter character : (y/n)");
scanf("%s",&Ans);
printf("%d",q.size);
return 0;
}
scanf()之后来自q.size的预期结果为7 实际结果是0
答案 0 :(得分:7)
您正在将字符串%s
读入char
变量中,这会导致内存损坏。您必须在%c
中放入scanf
而不是%s
才能读取字符。