结构的变量值在c中自动更改

时间:2019-07-16 10:43:22

标签: c

我在主函数中用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

1 个答案:

答案 0 :(得分:7)

您正在将字符串%s读入char变量中,这会导致内存损坏。您必须在%c中放入scanf而不是%s才能读取字符。