Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » 2D-Arrays zurück geben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.11.2005, 15:47 Uhr
felekchris



hallo,

ich versuche einen pointer auf 2D-Array zu erstellen und dann in einer Funktion mit zufälligen Werten zu füllen.


int (*pntArray)[6] = new int[4][6];
...

for(i=0;i<4;i++){
for(k=0;k<6;k++){
pntArray[i][k] = rand();
}
}

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

vielen Dank im Voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.11.2005, 19:33 Uhr
BoBtheREapER
kein job für nen BoB


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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.11.2005, 21:14 Uhr
mischa
Fragender


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.11.2005, 07:36 Uhr
(un)wissender
Niveauwart



Zitat von BoBtheREapER:

also warnungen kann man auch ignorieren



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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.11.2005, 09:45 Uhr
felekchris



also ich des Problems Lösung gefunden.

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.

Nichtsdestotrotz danke für eure Antworten.

felix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: