In C programming, we can return a pointer from a function like any other data type.
Points to Remember
We should not return pointer to a local variable declared inside a function because as soon as control returns from a function all local variables gets destroyed. If we want to return pointer to a local variable then we should declare it as a static variable so that it retains it's value after control returns from function.
We should not return pointer to a local variable declared inside a function because as soon as control returns from a function all local variables gets destroyed. If we want to return pointer to a local variable then we should declare it as a static variable so that it retains it's value after control returns from function.
Declaration of a Function Returning Pointer
int* getEvenNumbers(int N){ /* Function Body */ }
C Program Returning a Pointer from a Function
#include <stdio.h> /* This function returns an array of N even numbers */ int* getOddNumbers(int N){ /* Declaration of a static local integer array */ static int oddNumberArray[100]; int i, even = 1; for(i=0; i<N; i++){ oddNumberArray[i] = even; even += 2; } /* Returning base address of oddNumberArray array*/ return oddNumberArray; } int main(){ int *array, counter; array = getOddNumbers(10); printf("Odd Numbers\n"); for(counter=0; counter<10; counter++){ printf("%d\n", array[counter]); } return 0; }Output
Odd Numbers 1 3 5 7 9 11 13 15 17 19