Table of Contents
hide
Example : A C program to find out the memory occupied by a structure or union.
#include <stdio.h>
#include <conio.h>
struct teacher
{
char tname[50];
int tid;
float salary;
}str;
union student
{
char sname[50];
int rollno;
float fee;
}stu;
int main()
{
printf("\nsize of 1st structure element = %d bytes\n", sizeof(str.tname));
printf("\nsize of 2nd structure element = %d bytes\n", sizeof(str.tid));
printf("\nsize of 3rd structure element = %d bytes\n", sizeof(str.salary));
printf("\n\nsize of whole structure = %d bytes\n",sizeof(str));
printf("\nsize of 1st union element = %d bytes", sizeof(stu.sname));
printf("\nsize of 2nd union element = %d bytes", sizeof(stu.rollno));
printf("\nsize of 3rd union element = %d bytes", sizeof(stu.fee));
printf("\n\nsize of complete union = %d bytes", sizeof(stu));
return 0;
}
Output :
size of 1st structure element = 50 bytes
size of 2nd structure element = 4 bytes
size of 3rd structure element = 4 bytes
size of whole structure = 60 bytes[50+04+04+02 extra]
size of 1st union element = 50 bytes
size of 2nd union element = 4 bytes
size of 3rd union element = 4 bytes
size of complete union = 52 bytes [50 due to Max Size+02 extra]
NB : Here a structure/union takes 2 bytes extra memory space for proper padding/packing of structure/union elements.
Example : A C program to store static/constant data in a structure & display them.
#include <stdio.h>
#include <conio.h>
struct emp
{
char ename[30];
int eid;
float esal;
};
void main()
{
struct emp x={"Raman",140,40000};
printf("\n Name of Employee: %s",x.ename);
printf("\n Employee Id: %d",x.eid);
printf("\n Employee Salary: %f\n",x.esal);
getch();
}
/* -------------------- OR ----------------------*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct emp
{
char ename[30];
int eid;
float esal;
}x;
void main()
{
strcpy(x.ename,"Robert");
printf("\nEmployee Name is :%s ",x.ename);
x.eid=52;
printf("\nEmployee ID is:%d ",x.eid);
x.esal=50000;
printf("\nEmployee Salary is:%f ",x.esal);
getch();
}
/* -------------------- OR ----------------------*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct emp
{
char ename[30];
int eid;
float esal;
}x={"Robert",52,50000};
void main()
{
printf("\nEmployee Name is :%s ",x.ename);
printf("\nEmployee ID is:%d ",x.eid);
printf("\nEmployee Salary is:%f ",x.esal);
getch();
}
Example : A C program to store & copy static/constant data in another structure & display them.
#include <stdio.h>
#include <conio.h>
struct emp
{
char ename[30];
int eid;
float esal;
};
void main()
{
struct emp x={"Raman",140,40000};
struct emp y;
y=x;
printf("The output before copying is =");
printf("\n Name of Employee: %s",x.ename);
printf("\n Employee Id: %d",x.eid);
printf("\n Employee Salary: %f\n",x.esal);
printf("\nThe output after copying is =");
printf("\n Name of Employee: %s",y.ename);
printf("\n Employee Id: %d",y.eid);
printf("\n Employee Salary: %f\n",y.esal);
getch();
}
Output :
The output before copying is =
Name of Employee: Raman
Employee Id: 140
Employee Salary: 40000.000000
The output after copying is =
Name of Employee: Raman
Employee Id: 140
Employee Salary: 40000.000000
---------------- OR ----------------
#include <stdio.h>
#include <conio.h>
struct emp
{
char ename[30];
int eid;
float esal;
};
void main()
{
struct emp x={"Raman",140,40000};
struct emp y={"Robert",210,45000};
printf("The output before copying is =");
printf("\n Name of Employee: %s",x.ename);
printf("\n Employee Id: %d",x.eid);
printf("\n Employee Salary: %f\n",x.esal);
printf("\nThe output after copying is =");
printf("\n Name of Employee: %s",y.ename);
printf("\n Employee Id: %d",y.eid);
printf("\n Employee Salary: %f\n",y.esal);
getch();
}
Output:
The output before copying is =
Name of Employee: Raman
Employee Id: 140
Employee Salary: 40000.000000
The output after copying is =
Name of Employee: Robert
Employee Id: 210
Employee Salary: 45000.000000
Example : A C program to store dynamic/run time/user-given keyboard input data in a structure & display them.
#include <stdio.h>
#include <conio.h>
struct emp
{
char ename[30];
int eid;
float esal;
};
struct emp x;
void main()
{
printf("Enter Employee Name : ");
scanf("%s",x.ename);
//gets(x.ename);
printf("Enter Numeric Employee Id : ");
scanf("%d",&x.eid);
printf("Enter Employee Salary : ");
scanf("%f",&x.esal);
printf("\nName of Employee: %s",x.ename);
printf("\nEmployee Id: %d",x.eid);
printf("\nEmployee Salary: %f\n",x.esal);
getch();
}
Example : A C program to store multiple data/records in a structure & display them using an array of structures.
#include <stdio.h>
#include <conio.h>
struct emp
{
char ename[30];
int eId;
float esal;
}x[5];
void main()
{
int i;
for(i=1;i<=5;i++)
{
printf("Enter Employee Name: ");
scanf("%s",x[i].ename);
printf("Enter Numeric Id : ");
scanf("%d",&x[i].eId);
printf("Enter Employee Salary : ");
scanf("%f",&x[i].esal);
}
printf("\nEmployee Name Employee Id Employee Salary\n");
for(i=1;i<=5;i++)
{
printf("%s\t\t",x[i].ename);
printf("%d\t\t",x[i].eId);
printf("%f\t",x[i].esal);
printf("\n");
}
getch();
}
Example : A C++ program to store multiple data/records in a structure & display them using an array of structures.
#include <iostream>
using namespace std;
struct Employee
{
int Eid;
char Ename[30];
int Eage;
float Esal;
};
int main()
{
int i;
struct Employee Emp[3];
for(i=0;i<3;i++)
{
cout << "\nEnter details of " << i+1 <<" Employee";
cout << "\nEnter Employee Id : ";
cin >> Emp[i].Eid;
cout << "\nEnter Employee Name : ";
cin >> Emp[i].Ename;
cout << "\nEnter Employee Age : ";
cin >> Emp[i].Eage;
cout << "\nEnter Employee Salary : ";
cin >> Emp[i].Esal;
}
cout << "\nDetails of Employees are : ";
for(i=0;i<3;i++)
{
cout << "\n"<< Emp[i].Eid <<"\t"<< Emp[i].Ename <<"\t"<< Emp[i].Eage <<"\t"<<Emp[i].Esal;
}
return 0;
}
Example : A C program to store five subject marks of a student and display total marks, percentage, etc using structure.
#include <stdio.h>
struct student
{
char sname [30];
int submarks[ 5];
float percentage;
int totmarks;
};
void main()
{
struct student std;
int i;
printf("Enter student name: ");
gets(std.sname);
printf("Enter 5 subject marks:\n");
std.totmarks=0;
for(i=1;i<=5;i++)
{
printf("Enters %d subject marks : ",i);
scanf("%d",&std.submarks[i]);
std.totmarks=std.totmarks+std.submarks[i];
}
std.percentage=(float)((float)std.totmarks/(float)500)*100;
printf("\nStudent Name: %s \nTotal Marks: %d \nPercentage Marks Obtained:
%.2f",std.sname,std.totmarks,std.percentage);
getch();
}
Example : A C program to declare pointer variable in a structure to accept data & display them.
#include<stdio.h>
#include<conio.h>
struct employee
{
int empid;
char empname[50];
float salary;
};
void main()
{
struct employee emp; // Normal structure variable declaration
struct employee *pemp; // Pointer structure variable declaration
pemp=&emp;
printf("Enter employee name: ");
gets(pemp->empname);
printf("Enter Employee id: ");
scanf("%d",&pemp->empid);
printf("Enter employee salary:");
scanf("%f",&pemp->salary);
printf("\nEmployee id is : %d",emp.empid);
printf("\nEmployee Name is : %s",emp.empname);
printf("\nEmployee Salary is : %f",emp.salary);
printf("\nEmployee id is : %d",pemp->empid);
printf("\nEmployee Name is : %s",pemp->empname);
printf("\nEmployee Salary is : %f",pemp->salary);
getch();
}
Example : A C program to explain the concept of Pointer to Structure.
#include <stdio.h>
struct Book
{
char bname[10];
char btype[50];
int price;
int page;
};
int main()
{
//struct Book bk, *ptr;
struct Book bk; //Structure variable
struct Book *ptr; //Pointer of Structure
ptr = &bk;
struct Book bk1[10]; //Array of structure
struct Book *ptr1; //Pointer of Structure
ptr1 = bk1;
return 0;
}
Example : A C program to explain the concept of Pointer to Structure Elements.
#include<stdio.h>
#include<conio.h>
struct person
{
//Pointer structure elements
char *name;
int *age;
float *height;
};
struct person *ptr;
void main()
{
char nm[30]="Robert";
int ag=56;
float ht=5.10;
//Assigning address of data variables
ptr->name=nm;
ptr->age=&ag;
ptr->height=&ht;
printf("The Person details are: ");
printf("%s",*ptr->name);
printf("%d",*ptr->age);
printf("%f",*ptr->height);
getch();
}
Example : A C program to display the structure elements/values using Pointer (Pointer to Structure).
#include <stdio.h>
struct Book
{
char bname[10];
char btype[50];
int price;
int page;
};
int main()
{
struct Book bk={"Ramayan","Holybook",450,260}; //Structure variable
struct Book *ptr; //Pointer of Structure
ptr = &bk;
printf("Book's Name is = : %s\n", ptr->bname);
printf("Book's Type is = : %s\n", ptr->btype);
printf("Book's Price is = : %d\n", ptr->price);
printf("Book's Page are = : %d\n", ptr->page);
return 0;
}
Output :
Book's Name is = : Ramayan
Book's Type is = : Holybook
Book's Price is = : 450
Book's Page are = : 260
---------------- OR ------------------
#include <stdio.h>
#include <malloc.h>
struct Book
{
char bname[10];
char btype[50];
int price;
int page;
};
int main()
{
struct Book bk={"Ramayan","Holybook",450,260}; //Structure variable
struct Book *ptr; //Pointer of Structure
ptr = &bk;
//Memory allocation for Structure
ptr = (struct Book*)malloc(sizeof(struct Book));
//check memory availability
if( ptr == NULL)
{
printf("Unable to allocate memory!!!\n");
exit(0);
}
printf("Enter Book Name...\n");
scanf("%s", ptr->bname);
printf("Enter Book Type...\n");
scanf("%s", ptr->btype);
printf("Enter Book Price...\n");
scanf("%d", &ptr->price);
printf("Enter Book Page...\n");
scanf("%d", &ptr->page);
printf("\nThe Book details are...\n");
printf("Book Name is : %s\n", ptr->bname);
printf("Book Type is : %s\n", ptr->btype);
printf("Book Price is : %d\n", ptr->price);
printf("Book Page are : %d\n", ptr->page);
//freeing dynamically allocated memory
free(ptr);
return 0;
}
Output :
Enter Book Name...
Ramayan
Enter Book Type...
Holybook
Enter Book Price...
460
Enter Book Page...
320
The Book details are...
Book Name is : Ramayan
Book Type is : Holybook
Book Price is : 460
Book Page are : 320
------------------ OR ------------------
#include <stdio.h>
#include <malloc.h>
struct Book
{
char bname[10];
char btype[50];
int price;
int page;
};
int main()
{
int i;
struct Book bk={"Ramayan","Holybook",450,260}; //Structure variable
struct Book *ptr; //Pointer of Structure
ptr = &bk;
//Memory allocation for Structure
ptr = (struct Book*)malloc(sizeof(struct Book));
//check memory availability
if( ptr == NULL)
{
printf("Unable to allocate memory!!!\n");
exit(0);
}
printf("\nEnter the Book details ...\n");
for(i=1;i<=2;i++)
{
printf("Enter Book Name...\n");
scanf("%s", (ptr+i)->bname);
printf("Enter Book Type...\n");
scanf("%s", (ptr+i)->btype);
printf("Enter Book Price...\n");
scanf("%d", &(ptr+i)->price);
printf("Enter Book Page...\n");
scanf("%d", &(ptr+i)->page);
}
printf("\nThe Book details are...\n");
for(i=1;i<=2;i++)
{
printf("Book Name is : %s\n", (ptr+i)->bname);
printf("Book Type is : %s\n", (ptr+i)->btype);
printf("Book Price is : %d\n", (ptr+i)->price);
printf("Book Page are : %d\n", (ptr+i)->page);
}
//freeing dynamically allocated memory
free(ptr);
return 0;
}
Output :
Enter the Book details ...
Enter Book Name...
Ramayan
Enter Book Type...
Holybook
Enter Book Price...
460
Enter Book Page...
320
The Book details are...
Book Name is : Ramayan
Book Type is : Holybook
Book Price is : 460
Book Page are : 320
Example : A C program to display the output using Nested of Structures.
#include<stdio.h>
struct teacher
{
char tid[20];
char tname[30];
char subtaught[50];
int mobno;
};
struct student
{
int rollno;
char sname[20];
char section[5];
struct teacher tr;
//Simple Individual Nested Structure
};
void main ()
{
struct student stu;
printf("Enter Student RollNo, Name and Section\n");
scanf("%d %s %s",&stu.rollno,stu.sname, stu.section);
printf("\nEnter Teacher Id, Name, Subject Taught and Mobile No\n");
scanf("%s %s %s %d",stu.tr.tid,stu.tr.tname, stu.tr.subtaught,&stu.tr.mobno);
printf("\nStudent Details are\n");
printf("Stuent's' Name: %s\nStudent's RollNo: %d\nStudent's Section: %s\nTeacher's Name: %s\nSubject Taught: %s",stu.sname,stu.rollno,stu.section,stu.tr.tname,stu.tr.subtaught);
getch();
}
Output:
Enter Student RollNo, Name and Section
54
Soha
C
Enter Teacher Id, Name, Subject Taught and Mobile No
B35
B.K.Sahay
English
5451525658
Student Details are
Stuent's' Name: Soha
Student's RollNo: 54
Student's Section: C
Teacher's Name: B.K.Sahay
Subject Taught: Englis
----------------------- OR -----------------------
#include<stdio.h>
struct student
{
int rollno;
char fname[20];
char addr[150];
struct sname
// Embedded Nested Structure
{
char sfirstname[20];
char smidname[20];
char slastname[20];
}sn;
}stu;
void main ()
{
printf("Enter Student RollNo, Father's Name, Address, First Name, Middle Name and Last Name\n");
scanf("%d %s %s %s %s %s",&stu.rollno,stu.fname, stu.addr,stu.sn.sfirstname, stu.sn.smidname, stu.sn.slastname);
printf("\nStudent Details are\n\n");
printf("Stuent's First Name: %s\nStuent's Middle Name: %s\nStuent's Last Name: %s\nStudent's RollNo: %d\nStudent's Father Name: %s\nAddress: %s\n",stu.sn.sfirstname,stu.sn.smidname,stu.sn.slastname,stu.rollno,stu.fname,stu.addr);
getch();
}
Output:
Enter Student RollNo, Father's Name, Address, First Name, Middle Name and Last N
ame
120
T.Prasad
Patna
Raman
Kumar
Vyas
Student Details are
Stuent's First Name: Raman
Stuent's Middle Name: Kumar
Stuent's Last Name: Vyas
Student's RollNo: 120
Student's Father Name: T.Prasad
Address: Patna
0 Comments