Bisher klappt's , auch die Ausgabe und übergabe an einer Funktion die einen pointer auf Array als Argumente erwartet. Das Problem besteht darin dass ich nicht recht weiss, wie ich diesen Pointer mittels einer Funktion zurückgeben kann.
mein Versuch es mit der Funktion getArrayPnt klappt, aber der kompiler wirft viele warn-meldungen aus.
int& getArrayPnt(){
int (*p)[6] = new int[4][6];
p = pntArray; //zeile 88
return *p; }
Wie kann ich folgende Funktion ersetzen oder verbessern. Soll ich einen Pointer auf Pointer anwenden.
#p.s. warn-meldungen die bei obigen Funktion getArrayPnt auftreten:
88:warning:converting to int from int* lacks a cast 88:warning:initializing non-const 'int &' with 'int *' will use a temporary 88:warning:returning referenze to temporary
also warnungen kann man auch ignorieren -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
warnungen sollte man nicht ignorieren bei kleinen progs ist das nicht so gefährlich aber bei großen anwendungen kann das zu problemen bei der ausführung geben zum problem der rückgabe wert von getArrayPnt() ist eine reverenz zurück gibst du aber einen pointer zeig doch bitte den code von ganzen funktionen dan kann man mehr sagen -- Latein Unterricht ist die spätere Rache der Römer an den Germanen.
Vor allem in diesem Fall sehr unqualifizierte Äußerung. Warnung müssen im wirklichen Leben leider tatsächlich mal ignoriert werden, allerdings braucht man schon einiges an Erahrung, ob man diese Warnung tatsächlich ignorieren sollte. -- Wer früher stirbt ist länger tot.
Mein Ziel war ursprüglich dieses 2D-Array in einer anderen Klasse mittels einen folgenden Ausdruck auszugeben: cout<<pnt[0][0]; ... und so weiter
mit:
... int (*pnt)[6] = new int[4][6]; ... ZahlenGenerator *zg; pnt = zg->getArray(); cout<<pnt[0][0]; ...
Mein cygwin-Kompiler hatte mit diesem Ausdruck keine Probleme, bis auf die o.g. Warnungen. Der VC++ kompiler kann diesen womöglich fehlerhaften Ausdruck nicht kompilieren, somit war ich gezwungen einen Pointer als Rückgabewert anzuwenden. Das Ergebnis ist zwar gleich, aber hierbei musste ich auf Zeigerarithmetik zurückgreifen, was ich eigentlich vermeiden wollte.