Passing Structure Variable to a function

C Passing Structure Variable to a function

Similar like ordinary data type variables, a structure variable can also be passed to a function.

Either pass a individual structure elements or the entire structure at one go.

We can also pass the addresses of structure elements or address of a structure variable.

In programming, we usally deal with collection of ints, chars and floats rather than isolated entities.

Example an entity book is a collection of things like a title, an author, total pages, date of publication and price etc..

Structure is user defined data type which combines dissimilar data types into an entity.

C program to pass structure variable to a function

This c program is the example to pass entire structure variable to a function.

structure variable b1 is passed to function show where displayed the entire structure variable.

#include<stdio.h>                                                          
                                                                                
struct book                                                                     
{                                                                               
  int id;                                                                       
  char *title;                                                                  
  char *author;                                                                 
  float price;                                                                  
};                                                                              
                                                                                
void show(struct book b1)                                                       
{                                                                               
  printf("Inside show function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);          
}                                                                               
void main()                                                                     
{                                                                               
  struct book  b1 = {1, "book1", "author1", 20.5};                              
  show(b1);                                                                     
                                                                                
  printf("Inside main function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);          
}   

Output:

$ cc structure.c
$ ./a.out 
Inside show function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000
Inside main function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000

Passing addresses of structure variable to a function

This c program is the example of passing the addresses of structure variable to a function.

This programm passing address to a function and prints the entire structure variable using pointer.

#include<stdio.h> 
                                                                                
struct book                                                                     
{                                                                               
  int id;                                                                       
  char *title;                                                                  
  char *author;                                                                 
  float price;                                                                  
};                                                                              
                                                                                
void show(struct book *b1)                                                      
{                                                                               
  printf("Inside show function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1->id, b1->title, b1->author, b1->price);        
}                                                                               
void main()                                                                     
{                                                                               
                                                                                
  struct book  b1 = {1, "book1", "author1", 20.5};                              
  show(&b1);                                                                    
                                                                                
  printf("Inside main function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);            
}  

Output:

$ cc structure.c
$ ./a.out 
Inside show function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000
Inside main function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000

Passing individual structure elements to a function using pointer

This c program is passing the individual structure element 'title' to the show function as pointer and displaying it.

#include<stdio.h>                                                             
                                                                                
struct book                                                                     
{                                                                               
  int id;                                                                       
  char *title;                                                                  
  char *author;                                                                 
  float price;                                                                  
};                                                                              
                                                                                
void show(char *title)                                                          
{                                                                               
  printf("Inside show function");                                               
  printf("\ntitle: %s\n", title);                                               
}                                                                               
void main()                                                                     
{                                                                               
                                                                                
  struct book  b1 = {1, "book1", "author1", 20.5};                              
  show(b1.title);                                                               
                                                                                
  printf("Inside main function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);            
}  

Output:

$ cc structure.c
$ ./a.out 
Inside show function
title: book1
Inside main function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000

Passing individual structure elements to a function using array

This c program is passing the individual structure element 'title' to the show function as array and displaying it.

#include<stdio.h>                                                              
                                                                                
struct book                                                                     
{                                                                               
  int id;                                                                       
  char *title;                                                                  
  char *author;                                                                 
  float price;                                                                  
};                                                                              
                                                                                
void show(char title[30])                                                       
{                                                                               
  printf("Inside show function");                                               
  printf("\ntitle: %s\n", title);                                               
}                                                                               
void main()                                                                     
{                                                                               
                                                                                
  struct book  b1 = {1, "book1", "author1", 20.5};                              
  show(b1.title);                                                               
                                                                                
  printf("Inside main function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);            
}   

Output:

$ cc structure.c
$ ./a.out 
Inside show function
title: book1
Inside main function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000

Passing address of individual structure element to a function

This c program explains how to pass the address of individual structure elements to a function.

Address can be passed using & symbol and value of address can be accessed using * pointer.

#include<stdio.h>                                                              
                                                                                
struct book                                                                     
{                                                                               
  int id;                                                                       
  char *title;                                                                  
  char *author;                                                                 
  float price;                                                                  
};                                                                              
                                                                                
void show(int *id)                                                              
{                                                                               
  printf("Inside show function");                                               
  printf("\naddress of id: %d\n", id);                                          
  printf("value of id: %d\n", *id);                                             
}                                                                               
void main()                                                                     
{                                                                               
                                                                                
  struct book  b1 = {1, "book1", "author1", 20.5};                              
  show(&b1.id);                                                                 
                                                                                
  printf("Inside main function");                                               
  printf("\nbook id\ttitle \t auther \t price \n");                             
  printf("%d\t%s\t%s \t%f\n", b1.id, b1.title, b1.author, b1.price);            
}     

Output:

$ cc structure.c
$ ./a.out 
Inside show function
address of id: 62636304
value of id: 1
Inside main function
book id	title 	 auther 	 price 
1	book1	author1 	20.500000


C Program Examples

C program to cmpute matrix addition using two dimensional array

C program to cmpute matrix subtraction using two dimensional array

C program to cmpute matrix multiplication using two dimensional array

C program to compute different order of matrix multiplication

C program to generate identity matrix for required rows and columns

C program to validate whether matrix is identity matrix or not

C program to validate whether matrix is sparse matrix or not

C program to validate whether matrix is dense matrix or not

C program to generate string as matrix diagonal characters using two dimesional array

C Program to find number of weeks, months and years from days

C Program To Implement Linked List and Operations

C Program To Implement Sorted Linked List and Operations

C Program to Reverse the Linked List

C Program to Stack and Operations using Linked List

C Program to Queue and Operations using Linked List

C Program to calculate multiplication of two numbers using pointers

C Program To Calculate Median

C Program To Calculate Standard Deviation

C Program For Fahrenheit To Celsius Conversion

C Program To Calculate Average

C Program For Quadratic Equations

C Program To Check Character Type

C Program To Find Largest Of Three Values

C Program To Find Max Value In Array

C Program to Find Min Value In Array

C Program to Print Multiplication Table

C Program for Frequency Counting

C Program to read a line of text

C Program To Find ASCII Value For Any Character

C Program To Find A Character Is Number, Alphabet, Operator, or Special Character

C Program To Find Reverse Case For Any Alphhabet using ctype functions

C Program To Find Number Of Vowels In Input String

C Program Pointers Example Code

C Program To Find Leap Year Or Not

C Program To Swap Two Integers Using Call By Reference

C Program To Swap Two Integers Without Using Third Variable

C Program To List Prime Numbers Upto Limit

C Program To List Composite Numbers Upto Limit

C Program To Calculate Compound Interest

C Program To Calculate Depreciation Amount After of Before Few Years

C Program To Calculate Profit Percentage

C Program To Calculate Loss Percentage

C Program To Find String Is Polindrome Or Not

C Program To Find Factorial of a Number

C Program To Check Number is a Polindrome or Not

C Program To Generate Random Integers

C Program To Generate Random Float Numbers

C Program to find Square Root of a Number

C Program to find Area of a Rectangle

C Program to find Perimeter of a Rectangle

C Program to find Area of a Square

C Program to find Area of a Triangle

C Program to find Area of a Parallelogram

C Program to find Area of a Rhombus

C Program to find Area of a Trapezium

C Program to find Area of a Circle and Semi-circle

C Program to find Circumference of a Circle and Semi-circle

C Program to find length of an arc

C Program to find Area of a Sector

C Program to find string length for list of strings

C Program to find the character at index in a string

C Program to compare characters

C Program to find eligible to vote or not

C Program to get system current date and time on linux

C Program to get positive number

C Program to implement calculator

C Program to implement banking system

C Program to find sum of number

C Program for array traversal using pointers

C Program for array traversal in reverse order using pointers

C Program to find particular element occurrences count in array

C Program to find even elements occurrences count in array

C Program to find odd elements occurrences count in array

C program to find week day in word from week day in number using two dimentsional array

C program to find month in word from month in number using pointers

C program to compute PMT for a loan

C program to compute EMI and round up using floor

C program to compute EMI and round up using ceil

C program to compute the EMI table with Interest, Principal and Balance

C program to get multiple line of string

C program to find nth element in array using pointers

C program to compute the volume of a cube

C program to compute the volume of a box

C program to compute the volume of a sphere

C program to compute the volume of a triangular prism

C program to compute the volume of a cylinder

C Program to Compute Perimeter of Square

C Program to compute the perimeter of triangle

C Program to compute the discount rate

C Program to compute the sales tax

C program to add, delete, search a record or show all using binary file

C program to add, delete, search a record or show all using text file

Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^