Zeiger auf Array als rückgabeparameter
-
Ich schreibe eine Funktion, die einen pointer auf ein float[5] zurückgeben soll.
Doch beim kompilieren wird mirerror C2090: Funktionsergebnis ist ein Array
angezeigt. Wie kann ich das lösen? Hier der Funktionskopf
float (*sortbydist)(float* frompoint, float x, int dim1)[5]Danke
-
Erzeuge an der aufrufenden Stelle dein float-Array, dass du per Referenz/Pointer an deine Funktion übergibst und dort füllst.
-
@_matze: Wenn es C ist, dann geht nichts mit Refrenzen.
Wenn Du einen Zeiger zurückgeben möchtest
- als Argument musst Du einen Zeiger auf einen Zeiger deklarieren float** ppMyResult
- Ansonsten den Rückgabewert der Funktion nuutzen: float *MyFunc(...);
-
Martin Richter schrieb:
@_matze: Wenn es C ist, dann geht nichts mit Refrenzen.
Klar, stimmt. Von C war ja auch nicht die Rede...
Martin Richter schrieb:
- Ansonsten den Rückgabewert der Funktion nuutzen: float *MyFunc(...);
Sollte man da nicht noch erwähnen, dass er Probleme bekommen kann, wenn er lokal in seiner Funktion ein nicht-static float-Array bastelt und einen Zeiger auf das Array zurückgibt, dass mit dem Funktionsende seine Gültigkeit verliert?
-
_matze schrieb:
Sollte man da nicht noch erwähnen, dass er Probleme bekommen kann, wenn er lokal in seiner Funktion ein nicht-static float-Array bastelt und einen Zeiger auf das Array zurückgibt, dass mit dem Funktionsende seine Gültigkeit verliert?
Sollte man!

-
Danke