_
toggle menu eXmatrikulationsamt.de
online: 372 gäste

> C++ Funktion mit 2 Rückgabewerten?

Themen Layout: Standard · Linear · [Outline] Thema abonnieren | Thema versenden | Thema drucken
post 15 Apr 2008, 18:15
avatar
4. Schein
****

Punkte: 470
seit: 01.10.2003

Hallo Leute,

wie kann ich es realisieren, dass ich bei einer Funktion 2 Rückgabewerte returnen kann?
mit arrays geht sni so einfach und ich will es einfach... mag keine kanonen auf spatzen werfen, oder
wie das heißt...

wenn ich es so mache:
CODE

int* do_something(int* N, int k){
  N[0]=k;
  N[1]=k+1;
  return N;
  }
int main(void){
  int test[2], N[2];
  int k = 1;
  N[0]=0;
  N[1]=1;
  test = do_something(N,k);
  }


meckert der rum:

main.cpp:280: error: incompatible types in assignment of ‘int*’ to ‘int [2]’

was kann ich machen, damit das klappt???

danke m.



ProfilPM
AntwortenZitierenTOP
 
Antworten
post 16 Apr 2008, 17:14
avatar
der vierkonsonantige
*********

Punkte: 3812
seit: 12.12.2003

Zitat(marco @ 15 Apr 2008, 18:15)
CODE

int* do_something(int* N, int k){
  N[0]=k;
  N[1]=k+1;
  return N;
  }
int main(void){
  int test[2], N[2];
  int k = 1;
  N[0]=0;
  N[1]=1;
  test = do_something(N,k);
  }

*


das trifft das, was du machen wolltest am ehesten: das N auf der rechten Seite der Zuweisung ist nur da, damit der erste Array überhaupt nen Sinn hat wink.gif
CODE

void do_something(int N[], int ret[], int k)
{
  ret[0]=N[0] + k;
  ret[1]=N[1] + k+1;
}

int main(void){
  int test[2], N[2];
  int k = 1;
  N[0]=0;
  N[1]=1;
  do_something(N, test,k);
  }


der Fehler trat übrigens auf, weil du nen prnzipiell möglichen TypeCast vergessen hattest. Ist aber nicht so schlimm, es wär auch so Krachen gegangen, weil du ne Referenz auf den Stack geändert hättest mit der Zuweisung des anderen Arrays, das die Funktion zurückgegeben hat.

Dieser Beitrag wurde von stth: 16 Apr 2008, 17:16 bearbeitet


--------------------
jeden tag einen dummen kommentar!
hab ich bei den fadfindern gelernt.
bild kann nicht angezeigt werden

bild kann nicht angezeigt werden bild kann nicht angezeigt werden bild kann nicht angezeigt werden bild kann nicht angezeigt werden
"if you have a hammer, every problem looks like a nail"
ProfilPM
AntwortenZitierenTOP
Beiträge
marco   C++ Funktion mit 2 Rückgabewerten?   15 Apr 2008, 18:15
mmarx   std::pair<int, int>.   15 Apr 2008, 19:23
wicked   RE: C++ Funktion mit 2 Rückgabewerten?   15 Apr 2008, 22:23
wicked   argh? :D   15 Apr 2008, 22:43
aktsizr   :thumbup2:   16 Apr 2008, 12:51
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: