-
The function isn’t the pointer. The return value is
int *
since it returns an array ofint
. -
You need a pointer to access an array. If it’s not a pointer, then you are expecting a single
int
variable. -
If it’s not static, then the array will be deallocated and gone when the function reached to
return
. The array is neither a global variable, nor an allocated memory in heap, so it will be deallocated when the function reached toreturn
. If you make itstatic
, it works like a global variable (not exactly) and will not be deallocated when the function reaches to the end. -
Read number 1.
Lastly, you get segmented fault because the function returned a dangling pointer because the array is not static
therefore deallocated when the function reached to the end.
3
solved why the array is static [closed]