Pointer auf Array mit Pointern als Rückgabewert einer C-Funktion?
-
Hallo liebes Forum,
Ist es moeglich, in C einen Pointer auf ein Array mit Pointern (z.B. Pointer auf int-Werte) als Funktions-Rueckgabewert zu deklarieren?
- Falls ja, wie sieht die entsprechende Syntax insbesondere im Funktionskopf aus?
- Falls nein, wie würde man "am besten" verfahren, wenn man bspw. in einer Funktion drei Listen erstellt, um sie zurückzugeben? Gibt es dann nur die Moeglichkeit, mit einer void-Funktion ueber Call-By-Reference die entsprechenden Listen zu uebergeben/veraendern?
Was ich brauche, soll das folgende Code-Fragment andeuten, wobei ich nicht weiss, was bei <syntax?> stehen muss:
<syntax?> funktion () { int *(*pap)[]; ... // Hier werden z.B. die drei o.g. Listen erstellt ... return pap; } int main () { ... int *(*pap)[] = funktion(); ... }Im Voraus bereits vielen Dank für einen hilfreichen Hinweis!!

-
1. Bestimmt geht das, allerdings eher mit Doppel- und Dreifachpointern (die jeweils auf den Anfang eines Arrays zeigen können).
2. Ich würde die STL-Container dafür nutzen - und verschachtelte vector'en übergeben.
-
Es ginge z.B. so:
int** foo() { int **p; p = new int*[10]; for(int i=0; i < 10; i++) { p[i] = new int[5]; for(int j=0; j < 5; j++) p[i][j] = i+j; } return p; }oder (wie schon gesagt) mit einer Funktion mit folgender Signatur und folgendem Rückgabewert:
vector<vector<int> > foo2();