2014-09-24 3 views
1

Ошибка после предоставления входного значения идентификатора. Но работа при назначении значений напрямую. Скомпилировано успешно.ошибка при вводе в указатель структуры

#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); 
} 

Ошибка после предоставления входного значения идентификатора. Но работа при назначении значений напрямую.

+3

Ваш 'scanf' PARAMS, кажется, отсутствуют некоторые из них:' & '. – WhozCraig

+0

'scanf ("% d ", s1.id);' неверно. Google, как использовать 'scanf', чтобы получить' int'. –

+1

Предупреждения компилятора помогут вам обнаружить такую ​​ошибку. –

ответ

3

s1.id и s1.mob не являются указателями на междунар, вы должны использовать &s1.id и &s1.mob

+0

Спасибо! ** смущен:/** –

Смежные вопросы