Array leeren, zuweisen, an eine Funktion weitergeben.

Wie gestalte ich den Code wenn den Inhalt von einem Array an das andere Array 1 zu 1 weitergeben möchte?

char* myArray1[] = {"Dick", "Lang", "Hoch"};
char myArray2[];
myArray2 = myArray1;

In etwa so?!

Wie gebe ich das Array an eine andere Funktion weiter?

viod loop(){
char* meinArryImHauptLoop[];
...
meinArryImHauptLoop = meineFunktion();
}

char meineFunktion (){
char* myArray[] = {"Gross", "Klein"};
return myArray;
}

Wie leere ich das Array?

char* myArray[] = {"Gross", "Klein"};  // Bin voll.
... myArray; // Bin leer.

Arduino IDE ist noch sehr schlecht dokumentiert, gibt es diese Funktionen überhaupt?

Zu Punk 1: Array Kopieren

#define _myArray_cnt 3

void setup() 
{
  //definieren mit fester größe
  char* myArray1[_myArray_cnt] = {"Dick", "Lang", "Hoch"};
  char* myArray2[_myArray_cnt];

  //kopieren, element für element
  for(unsigned int i=0;i<_myArray_cnt;i++) {
    myArray2[i] = myArray1[i];
  }
}
void loop() {}

Punkt 2: Weitergabe

#define _myArray_cnt 3

//global definieren
char* myArray1[_myArray_cnt] = {"Dick", "Lang", "Hoch"};

char meineFunktion()
{
  myArray1[0] = "Doof";  
}

void setup() 
{
  //definieren mit fester größe
  char* myArray1[_myArray_cnt] = {"Dick", "Lang", "Hoch"};
  
  //funktionsaufruf
  meineFunktion();
  
}
void loop() {}

Geht glaub ich nur Global, ansonsten musst du mit Pointer of Pointer of .... arbeiten, ab dann wird es sehr sehr kompliziert.

Punkt 3: Array Leeren

#define _myArray_cnt 3
char* myArray1[_myArray_cnt] = {"Dick", "Lang", "Hoch"};

for(unsigned int i=0; i<_myArray_cnt;i++) {
  myArray1[i] = "";
}

Zu dem ganzen sei noch gesagt, dass man in C schreibt, nicht in C++.
In C gibt es keine Array Funktionen die einem das leben leicht machen, dort muss man mit Zeigern arbeiten was die meisten nicht mögen.

Die schönen Funktionen, die die Speicherverwaltung übernehmen (z.B. malloc) sollte man auf µC nicht verwenden.

Dazu ist zu sagen, daß man die Arraygröße zur Laufzeit nicht ändern kann. Wenn man zuviele Elemente in ein Array schreibt ( z beispiel 4 Werte in ein 3er-Array) gibt es keine Kontrolle oder Fehlermeldung die das verhindert.Man überschreibt den Speicherinnhalt nach dem für die ArrayVariable reservierten Speicherbereich. Dies führt zu unvorhersagbaren, unerklärlichen Fehlfunktionen des Programms.
Grüße Uwe