C Function Returning Pointers

C Function Returning Pointers

Like function return int, float, char, or any other data type, function can also return a pointer.

To return a pointer in function, needs to be explicitly mentioned in the calling function and also in function definition.

Function Returning A Pointer In C Program

This C program returns a pointer of local integer variable in the function but local variable (val) scope dies in calling function, so prints nothing.

#include <stdio.h>                                                          
                                                                                                                                        
// Function declaration.                                                                             
int *get_addr();                                                                
                                                                                
void main()                                                                     
{                                                                               
  int *addr;                                                                    
  addr = get_addr();                                                            
  printf("%u\n", addr);                                                         
  printf("%d\n", *addr);                                                        
}                                                                               
                        
// Function returning a pointer                                                        
int *get_addr()                                                                 
{                                                                               
  int val = 10;                                                          
  return &val;                                                                  
}    
Output:
$ cc function-return-pointers.c
function-return-pointers.c: In function ‘get_addr’:
function-return-pointers.c:16:10: warning: function returns address of local variable [-Wreturn-local-addr]
   return &val;
          ^~~~
$ ./a.out 
0
Segmentation fault (core dumped)

Making static

Make static to prevent val to be survived,

#include <stdio.h>                                                          
                                                                                                                                        
// Function declaration.                                                                             
int *get_addr();                                                                
                                                                                
void main()                                                                     
{                                                                               
  int *addr;                                                                    
  addr = get_addr();                                                            
  printf("%u\n", addr);                                                         
  printf("%d\n", *addr);                                                        
}                                                                               
                        
// Function returning a pointer                                                        
int *get_addr()                                                                 
{                                                                               
  static int val = 10;                                                          
  return &val;                                                                  
}    
Output:
$ cc function-return-pointers.c
$ ./a.out 
6295596
10

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
^