Is it possible for a function to return an array instead of a single value?
No but, then again, you don't really pass arrays as parameters, either. What C/C++ can do is pass the address of an array (a pointer) and you can return a pointer, too. Just be careful that when you return a pointer to an array, that the array is properly allocated.
For example, if you create an array within your function:
this will fail because local variables are allocated on the stack and will no longer be valid when the function returns.