#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int data;
} info;
typedef struct
{
info age;
float salary;
char *address;
} worker;
void print_struct(worker *w);
int main(void)
{
worker w;
printf("Enter Age: ");
scanf("%d", &w.age.data);
printf("Enter Salary: ");
scanf("%f", &w.salary);
fflush(stdin); fgetc(stdin);
w.address = (char*) malloc(32 * sizeof(char));
if (w.address == NULL)
{
printf("malloc failed\n");
return -1;
}
printf("Enter Address: ");
fgets(w.address, 31, stdin);
print_struct(&w);
free(w.address);
return 0;
}
void print_struct(worker *w)
{
// option 1
printf("age = %d\n", w->age.data);
printf("salary = %.2f\n", w->salary);
printf("address = %s\n", w->address);
// option 2
printf("age = %d\n", (*w).age.data);
printf("salary = %.2f\n", (*w).salary);
printf("address = %s\n", (*w).address);
}
/*
run:
Enter Age: 60
Enter Salary: 51000
Enter Address: 112 Mercer Street
age = 60
salary = 51000.00
address = 112 Mercer Street
age = 60
salary = 51000.00
address = 112 Mercer Street
*/