C Returning Arrays from Functions
C language does not allow returning a complete array as a function parameter. However, you can return a pointer to an array by specifying the array name without an index. We will discuss pointers in the next chapter. You can skip this chapter for now, and come back to study it after understanding the concept of C pointers.
If you want to return a one-dimensional array from a function, you must declare a function that returns a pointer, as follows:
Additionally, C does not support returning the address of a local variable outside the function, unless the local variable is defined asstaticvariable.
Now, let's look at the following function, which generates 10 random numbers and returns them using an array, as follows:
Example
When the above code is compiled and executed, it produces the following results:
r[0] = 313959809 r[1] = 1759055877 r[2] = 1113101911 r[3] = 2133832223 r[4] = 2073354073 r[5] = 167288147 r[6] = 1827471542 r[7] = 834791014 r[8] = 1901409888 r[9] = 1990469526 *(p + 0) : 313959809 *(p + 1) : 1759055877 *(p + 2) : 1113101911 *(p + 3) : 2133832223 *(p + 4) : 2073354073 *(p + 5) : 167288147 *(p + 6) : 1827471542 *(p + 7) : 834791014 *(p + 8) : 1901409888 *(p + 9) : 1990469526other extensions