Retornar array de una funcion

Hola estoy programando algún tiempo con arduino y me surge una necesidad que es la de realizar una función que retorne un array String de 50 valores. He leído y buscado por internet y algunos hablan del famoso asterisco pero la verdad es que lo he intentado de todas las maneras pero no funciona.
Alguien me podría echar una mano por favor estoy desesperado.
Muchas gracias.

Hola.
¿Necesitas crear el array desde dentro de la función o quieres pasarle ya un array para modificar sus datos?

Para la segunda opción te paso tres formas. Prueba a ver si te sirve alguna.

void setup() {
String micad[50];
llena(micad);
llena1(micad);
llena2(micad);
}

void loop() {
  // put your main code here, to run repeatedly: 
  
}

void llena(String *arr){ 
for (int a=0;a<50;a++)
      arr[a]="Hola";
}

void llena1(String arr[50]){
for (int a=0;a<50;a++)
      arr[a]="Hola";
}

void llena2(String arr[]){
for (int a=0;a<50;a++)
      arr[a]="Hola";
}

¿no hace falta un return con el valor correspondiente al final de la función?

No. En este caso tu le envías el array a la función y ésta trabaja sobre él, quedando al salir en el estado en que lo haya dejado la función. Se puede crear también un array dentro de la función y devolverlo con return, pero es un modo más delicado en cuando a la gestión de memoria.¿qué intenta hacer?

yo nada, estoy aprendiendo el manejo de String y cadenas de caracteres. String se come mucha memoria. Si haces el array p.e. de 150, ya no funciona bien en un UNO (en MEGA aún si).

Si.. es cierto. Usar String está reservado a MEGA, DUE, YUN y algun otro con capacidad de RAM.
En los micros chicos si no se trabaja con precisión genera problemas.