Home »
C programs »
C user-defined functions programs
C program to pass an array of structure to a user-defined function
In this C program, we are going to learn how to pass an array of structure to a user define function? Here, we are an example, where we are passing a structure to a function in C.
Submitted by IncludeHelp, on March 22, 2018
Problem statement
Given an array of structure and we have to pass it to the function in C.
Structure Declaration
structure declaration is:
struct exam
{
int roll;
int marks;
char name[20];
};
Here,
- exam is the structure name
- roll, marks and name are the members of the structure/variable of the structure
Function Declaration to Pass Array of Structures
Here is the function that we are using in the program,
void structfun(struct exam obj1);
Here,
- void is the returns type of the function i.e. function will not return any value.
- structfun is the name of the function.
- struct exam obj1 is the object of exam structure - while declaring a function we must have to use struct keyword with the structure name.
Structure Variable Declaration
Structure object/variable declaration is:
struct exam obj[2];
obj is an array of structure for 2 structures.
Assigning Values to Structure Members
Assigning values to the structure variables (array of structure variables) inside the main()
// assign values using the object 1
obj[0].marks = 35;
obj[0].roll = 10;
strcpy(obj[0].name , "Arjun kapoor");
// assign values using the object 1
obj[1].marks = 75;
obj[1].roll = 11;
strcpy(obj[1].name , "Balram chauhan");
Function Calling
Function calling statement,
structfun(obj);
Here, obj is an array of structure.
Program to pass an array of structures to a function in C
/*
C program to pass an arrays of structures
to a function
*/
#include <stdio.h>
// Declare a global structure since we need to pass
// it to a function
struct exam
{
int roll;
int marks;
char name[20];
};
// array of structure object
struct exam obj[2];
// declaration of the function
void structfun(struct exam *obj);
// function to print structure elements switch
// two different objects
void structfun(struct exam *obj)
{
//Values using the object 1
printf("\nName is : %s",obj[0].name);
printf("\nRoll No. is : %d",obj[0].roll);
printf("\nMarks are : %d",obj[0].marks);
printf("\n");
// Values using the object 2
printf("\nName is : %s",obj[1].name);
printf("\nRoll No. is : %d",obj[1].roll);
printf("\nMarks are : %d",obj[1].marks);
}
// main function
int main()
{
// assign values using the object 1
obj[0].marks = 35;
obj[0].roll = 10;
strcpy(obj[0].name , "Arjun kapoor");
// assign values using the object 1
obj[1].marks = 75;
obj[1].roll = 11;
strcpy(obj[1].name , "Balram chauhan");
// Passing structure to Function
structfun(obj);
return 0;
}
Output
Name is : Arjun kapoor
Roll No. is : 10
Marks are : 35
Name is : Balram chauhan
Roll No. is : 11
Marks are : 75
C User-defined Functions Programs »