Чтобы изменить внутри вашей функции collect()
данные, которые ей передаются, вам нужно передать ссылку на данные, а не сами данные.Посмотрите этот принятый ответ , чтобы узнать, как это сделать.Поэтому вы внесете следующие изменения:
используйте void collect(struct student_data *data)
вместо void collect(struct student_data data)
, а в main()
используйте collect(&student1)
вместо collect(student1)
.
Ваше использованиеиз roll_num
немного хитроумно, поэтому я игнорирую это.Ниже приведена модифицированная версия соответствующих частей вашего кода:
int main(void){
struct student_data student1;
collect(&student1);
throw(student1);
return 0;
}
void collect(struct student_data *data1){
printf("Enter name:");
scanf(" %s",data1->name);
printf("Enter department:");
scanf(" %s",data1->department);
// printf("Enter roll number:");
// scanf(" %d",data1->roll_num);
}