#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 80
// **** Add a constant for the size of name
#define MAX_NAME 100
struct Student {
char name[MAX_NAME]; // ** Save the hassle using malloc
int id; // student number
char enroll; // *** Just need a character - not a character pointer
};
struct Student student1;
void getStudent(struct Student *s)
{
printf("Type the name of the student: "); // *** Do not need malloc as using an array
// s->name = malloc(100); // assume name has less than 100 letters
fgets(s
->name
, MAX_NAME
, stdin
);
printf("\nType the student number: "); // ** Corrected a typo scanf("%d", &(s
->id
)); // *** You should check the return value here and take appropriate action - I leave that you the reader
printf("\nType the student enrollment option (D or X): "); scanf(" %c", &(s
->enroll
)); // scanf requires a charcter pointer here // return; This is not needed
}
void printStudent(struct Student s)
{
// *** THIS CODE DOES NOT MAKE ANY SENSE
// char name[MAX_LEN];
// char enroll[MAX_LEN];
// int id;
// s.id = id;
// s.name = name;
// s.enroll = enroll;
printf("Student Details: %d %s %c \n", s.
id, s.
name, s.
enroll ); /// return; Not needed
}
int main(int argc, char *argv[]){
getStudent(&student1);
printStudent(student1);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTUFYX0xFTiA4MAoKLy8gKioqKiAgQWRkIGEgY29uc3RhbnQgZm9yIHRoZSBzaXplIG9mIG5hbWUKI2RlZmluZSBNQVhfTkFNRSAxMDAKCnN0cnVjdCBTdHVkZW50IHsKICAgICBjaGFyIG5hbWVbTUFYX05BTUVdOyAgICAvLyAqKiBTYXZlIHRoZSBoYXNzbGUgdXNpbmcgbWFsbG9jCiAgICAgaW50IGlkOyAgICAgICAgICAgICAgICAgICAvLyBzdHVkZW50IG51bWJlcgogICAgIGNoYXIgZW5yb2xsOyAgICAvLyAqKiogSnVzdCBuZWVkIGEgY2hhcmFjdGVyIC0gbm90IGEgY2hhcmFjdGVyIHBvaW50ZXIKfTsKCnN0cnVjdCBTdHVkZW50IHN0dWRlbnQxOwoKdm9pZCBnZXRTdHVkZW50KHN0cnVjdCBTdHVkZW50ICpzKQp7CiAgICBwcmludGYoIlR5cGUgdGhlIG5hbWUgb2YgdGhlIHN0dWRlbnQ6ICIpOwovLyAqKiogRG8gbm90IG5lZWQgbWFsbG9jIGFzIHVzaW5nIGFuIGFycmF5Ci8vICAgIHMtPm5hbWUgPSBtYWxsb2MoMTAwKTsgICAvLyBhc3N1bWUgbmFtZSBoYXMgbGVzcyB0aGFuIDEwMCBsZXR0ZXJzIAogICAgZmdldHMocy0+bmFtZSwgTUFYX05BTUUsIHN0ZGluKTsKCiAgICBwcmludGYoIlxuVHlwZSB0aGUgc3R1ZGVudCBudW1iZXI6ICIpOyAgLy8gKiogQ29ycmVjdGVkIGEgdHlwbwogICAgc2NhbmYoIiVkIiwgJihzLT5pZCkpOyAgLy8gKioqIFlvdSBzaG91bGQgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBoZXJlIGFuZCB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbiAtIEkgbGVhdmUgdGhhdCB5b3UgdGhlIHJlYWRlcgoKICAgIHByaW50ZigiXG5UeXBlIHRoZSBzdHVkZW50IGVucm9sbG1lbnQgb3B0aW9uIChEIG9yIFgpOiAiKTsKICAgIHNjYW5mKCIgJWMiLCAmKHMtPmVucm9sbCkpOyAvLyAgc2NhbmYgcmVxdWlyZXMgYSBjaGFyY3RlciBwb2ludGVyIGhlcmUKLy8gICAgcmV0dXJuOyAgIFRoaXMgaXMgbm90IG5lZWRlZAp9Cgp2b2lkIHByaW50U3R1ZGVudChzdHJ1Y3QgU3R1ZGVudCBzKQp7Ci8vICoqKiBUSElTIENPREUgRE9FUyBOT1QgTUFLRSBBTlkgU0VOU0UKLy8gICAgY2hhciBuYW1lW01BWF9MRU5dOwovLyAgICBjaGFyIGVucm9sbFtNQVhfTEVOXTsKLy8gICAgaW50IGlkOwoKLy8gICAgcy5pZCA9IGlkOwovLyAgICBzLm5hbWUgPSBuYW1lOwovLyAgICBzLmVucm9sbCA9IGVucm9sbDsKCiAgICBwcmludGYoIlN0dWRlbnQgRGV0YWlsczogJWQgJXMgJWMgXG4iLCBzLmlkLCBzLm5hbWUsIHMuZW5yb2xsICk7CiAvLy8gICByZXR1cm47ICBOb3QgbmVlZGVkCn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pewogICAgZ2V0U3R1ZGVudCgmc3R1ZGVudDEpOwogICAgcHJpbnRTdHVkZW50KHN0dWRlbnQxKTsKICAgIHJldHVybiAwOwp9IAo=