首页 > 解决方案 > 结构的变量值在c中自动更改

问题描述

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

标签: c

解决方案


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


推荐阅读