char Array aus funktion übergeben
-
Hallo
ich habe eine funktion die aus einen header file die Variable zwei übergibt.
zwei einthält ein array mit 30 hexwerten.in der hauptfunktion übergebe ich an die funktion einen zahl
in der funktion wird per switch das hexarray übergeben.
leider gehts nicht
komme aus der c# szene vorher vb.
bsp:
char *getfont(int was) //char getfont[] geht nicht in c# schon
{switch (was)
{
case 0:
return null;
break;
case 1:
return eins;
break;
case 2:
return zwei;
break;
case 3:
return drei;
break;
case 4:
return vier;
break;
case 5:
return fuenf;
break;
case 6:
return sechs;
break;
case 7:
return sieben;
break;
case 8:
return acht;
break;
case 9:
return neun;
break;}
}
void main()
{
char *inhalt;inhalt=getfont(1);
//aber inhalt ist leer;
}
ich würde ja gerne das array komplett erhalten
char inhalt[100];
inhalt=getfont(1);das geht aber nicht.
wie kann man es lösen???
Danke schon mal
-
Wie sind denn deine Variablen null, eins, zwei, ... deklariert? Und in was prorammierst du überhaupt? C, C++, D ...?
Grundsätzlich kannst du in C bzw. C++ keine Arrays zurückgeben. Damit man's trotzdem kann, gibt es verschiedene Möglichkeiten.
ZB die Rückgabe eines Zeigers auf das erste Element. Dabei ist zu beachten, dsss das Array auch nach dem Aufruf der Funktion noch existiert. Funktionslokale Objekte werden auf automatischem Speicher abgelegt und am Ende der Funktion wieder freigegeben. Wenn du das nicht beachtest, zeigt der zurückgegebene Zeiger ins Nirvana und du erzeugst undefiniertes Verhalten.
Eine andere Möglichkeit ist, die Rückgabe über einen Parameter zu realisieren. Der ist für die Funktion dann halt kein Input, sondern Output. Das ist natürlich nicht so schon, zB wenn du die Rückgabe bei Verknüpfungen verwenden willst.
Oder du packst das Array in eine Struktur und gibst dann diese Struktur zurück. In C musst du das selbst machen, in C++ gibt es dafür fertige Container, wie zB std::vector oder boost::array.