A C-style array is not significantly different from a pointer to the first element of the array.
So code like the following is perfectly valid
int* GetNumbers()
{
int* par = new int[2];
par[0] = 1;
par[1] = 71;
return par;
}
This allocates memory dynamically, and it is the callers responsibility to dispose of the memory.