C 在结构指针中输入时出错

C 在结构指针中输入时出错,c,pointers,C,Pointers,提供ID的输入值后出错。但在直接分配值时工作。编译成功 #include<stdio.h> #include <string.h> typedef struct student { char name[20]; int id; int mob; } stu; void printstudent(stu *stud); void main() { stu s1; strcpy(s1.name,"name"); printf("En

提供ID的输入值后出错。但在直接分配值时工作。编译成功

#include<stdio.h>
#include <string.h>     

typedef struct student
{
    char name[20];
    int id;
    int mob;
} stu;

void printstudent(stu *stud);

void main()
{
stu s1;

strcpy(s1.name,"name");

printf("Enter Student id");
scanf("%d",s1.id);

//s1.id=1;

printf("Enter Student Mob no");
scanf("%d",s1.mob);

//s1.mob=9911;

printstudent(&s1);

}

void printstudent(stu *stud)
{
printf("\n%d",stud->id);

printf("\n%s",stud->name);

printf("\n%d",stud->mob);
}
#包括
#包括
类型定义结构学生
{
字符名[20];
int-id;
国际暴民;
}斯图;
无效打印学生(stu*螺柱);
void main()
{
stu-s1;
strcpy(s1.名称,“名称”);
printf(“输入学生id”);
scanf(“%d”,s1.id);
//s1.id=1;
printf(“输入学生移动编号”);
scanf(“%d”,s1.mob);
//s1.mob=9911;
学生(s1&s1);
}
无效打印学生(stu*螺柱)
{
printf(“\n%d”,螺柱->id);
printf(“\n%s”,螺柱->名称);
printf(“\n%d”,螺柱->移动);
}

提供ID的输入值后出错。但在直接分配值时工作。

s1.ID
s1.mob
不是指向int的指针,您应该使用
&s1.ID
&s1.mob

您的
scanf
参数似乎缺少其中一些:
&code>
scanf(“%d”,s1.ID)是错误的。谷歌如何使用
scanf
获取
int
。编译器警告可帮助您发现此类错误。哈哈,错误!!!顺便说一句,它说编译成功。谢谢!尴尬的:/