Returning an array

As stated, use pointers. But, then the local variable being returned must be 'static'. Also, you need some way of knowing the array's size in the calling function:

void setup() {
  Serial.begin (115200);
}

void loop() {
  int *returnedArray;
  returnedArray = Test();
  for (uint8_t i = 0; i < 3; i++) {
    Serial.println(returnedArray[i]);
  }
}

int *Test() {
  static int test[] = {1, 2, 3};
  return test;
}