Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Mehr als ein Wert mit Return zurückgeben?

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 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] > 6 <
050
29.11.2003, 16:16 Uhr
Benny



Also:


C++:
void main ()   //in der Schule so gemacht, muss ich beibehalten, so lange ein Int nicht zwingend ist

int xy_main [2];

xy_main = hauptmenue_programme(xy_main, col_main);   //Fehlermeldung: Lvalue required

int* hauptmenue_programme(int xy_prog[2], int col_prog[2])
return (xy_prog);



Was mach ich blos falsch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
051
29.11.2003, 16:20 Uhr
Pablo
Supertux
(Operator)


int in main ist zwingend, das ist die ANSI Standarisierung. main ist nach ANSI ein int (wir befinden uns auch im ANSI C/C++ Forum).

Wieviel Mal muss ich denn sagen, dass xy_main = haput.... nicht geht? Die Funktion lieferet einen Pointer und xy_main ist ein Array!!!!!! Und poste einen richtige Code, nicht in Stücken, sonst weiß ich nicht, ob das wirklich richtig ist, oder nicht.


Bearbeitung von Supertux:

Guck meinen Post 030. Da ist was du mavhen kannst und was nicht! Vergleiche mit deinem Code.




Bearbeitung von Pablo:

Ich bin in ner Stunde wieder zurück!


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 29.11.2003 um 16:25 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
052
29.11.2003, 16:25 Uhr
Benny




C++:
void main ()

{
  int col_main [20];
  int* xy_main [2];

  _setcursortype (_NOCURSOR);

  *xy_main[0] = 1; *xy_main[1] = 1;

  load_color_setting (col_main);

  hauptmenue_leiste_inaktiv(col_main);
  fusszeile(col_main);
  window_inhalt_box(col_main);

//  intro();

  schutz();

//  hauptmenue_leiste(*xy_main, col_main);

  *xy_main = hauptmenue_programme(*xy_main, col_main);

  /*window (20,10,40,20);
  cprintf ("%d",xy_main[0]);
  cprintf ("%d",xy_main[1]);*/


  getch();
}



C++:
int* hauptmenue_programme(int xy_prog[2], int col_menue_prog[20])
{
  int bg_color_aktiv[6];
  int bgt_color_aktiv[6];
  int bg_color;
  int bgt_color;
  int e = 0;

  if (xy_prog[1] == 1) {goto exit;}
  if (xy_prog[1] >= 6) {xy_prog[1] = 6;}

  bg_color = col_menue_prog[7];
  bgt_color = col_menue_prog[9];

  do
  {
   bg_color_aktiv[e] = bg_color;
   bgt_color_aktiv[e] = bgt_color;
   e=e+1;
  }
  while (e <= 5 );

  bg_color_aktiv[(xy_prog[1] - 1)] = col_menue_prog[8];
  bgt_color_aktiv[(xy_prog[1] - 1)] = col_menue_prog[10];

  window (3,2,25,9);
  textbackground (bg_color);
  textcolor (bgt_color);
  gotoxy (1,1); cprintf ("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
  gotoxy (1,2); cprintf ("³                    ³");
  gotoxy (1,3); cprintf ("³                    ³");
  gotoxy (1,4); cprintf ("³                    ³");
  gotoxy (1,5); cprintf ("³                    ³");
  gotoxy (1,6); cprintf ("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
  gotoxy (1,7); cprintf ("³                    ³");
  gotoxy (1,8); cprintf ("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");

textcolor (bgt_color_aktiv[1]);
textbackground (bg_color_aktiv[1]); gotoxy (2,2); cprintf (" Taschenrechner     ");
textcolor (bgt_color_aktiv[2]);
textbackground (bg_color_aktiv[2]); gotoxy (2,3); cprintf (" W„hrungsrechner    ");
textcolor (bgt_color_aktiv[3]);
textbackground (bg_color_aktiv[3]); gotoxy (2,4); cprintf (" Kilometerverbrauch ");
textcolor (bgt_color_aktiv[4]);
textbackground (bg_color_aktiv[4]); gotoxy (2,5); cprintf (" Herzschlagrechner  ");
textcolor (bgt_color_aktiv[5]);
textbackground (bg_color_aktiv[5]); gotoxy (2,7); cprintf (" Beenden      [ESC] ");
exit:
;
return (xy_prog);
}



Funktioniert zwar ohne Fehlermeldung, aber der Wert wird nicht an die Funktion übergeben. mmh
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
053
29.11.2003, 16:29 Uhr
Pablo
Supertux
(Operator)


Verwandle main int int, ich erzähle kein Quatsch, glaub mir! Ich guck mir das an, wenn ich zurück bin.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
054
29.11.2003, 16:38 Uhr
Benny



Und wenn das ganze so hab, sieht denk ich mal besser aus, aber nicht gut. :o(

C++:
int main ()

  int xy_main [2];

return 0;

//dann kommt an der Stelle:

xy_main = hauptmenue_programme(xy_main, col_main);

// Fehler: Lvalue required


Dieser Post wurde am 29.11.2003 um 16:39 Uhr von Benny editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
055
29.11.2003, 16:40 Uhr
derphilipder



Du kannst übrigens mit dem Funktionsaufruf

hauptmenue_programme(xy_main, col_main);

die Übergebenen Felder direkt in der Funktion bearbeiten, musst also gar kein Feld zurückgeben...

Es werden beim Übergeben nicht die Felder kopiert, sondern die pointer, die auf diese Felder zeigen - du arbeitest also mit dem Originalfeld!
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
056
29.11.2003, 16:45 Uhr
~Benny
Gast


Mal ausprobieren
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
057
29.11.2003, 16:49 Uhr
~Benny
Gast


Haltet euch fest, setzt euch hin, wie auch immer.

derphilipder der hat die Gefahr erkannt und gebannt. Ich hätte das andere garnicht gebraucht, aber trotzdem gut gewesen, jetzt versteh ich den unterschied von int und int* und ich weiß, dass nur die pointer übergeben werden, also viel gelernt. DANKE
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
058
29.11.2003, 16:55 Uhr
derphilipder



Puuuh...bitte!
War auch viel zu simpel, um es sofort zu lösen...
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
059
29.11.2003, 17:38 Uhr
Pablo
Supertux
(Operator)



Zitat:
Benny postete
Und wenn das ganze so hab, sieht denk ich mal besser aus, aber nicht gut. :o(

C++:
int main ()

  int xy_main [2];

return 0;

//dann kommt an der Stelle:

xy_main = hauptmenue_programme(xy_main, col_main);

// Fehler: Lvalue required



wieso postest du ohne { und }??? Ist das Absicht oder hast du nicht gemerkt, dass du sowas brauchst?


Bearbeitung von Supertux:

Bzgl Post 052.

Das ist was falschen. Wozu deklarierst du ein Pointer auf ein Array?

Ich habe nicht getestet, aber ich würde dasgen, das ist falsch: *xy_main[0] = 1; *xy_main[1] = 1; denn xy_main als Pointer auf den Wald zeigt!

Die Zeile *xy_main = hauptmenue_programme(*xy_main, col_main); gefällt mir auch nicht. Die Adresse von xy_main wird nie geändert. Deshalb reicht nur den gespeicherten Wert zu ändern. Also, deklariere xy_main nur als Array und rufe dann

C++:
hauptmenue_programme(xy_main, col_main);


die Funktion so auf!


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 29.11.2003 um 17:45 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] > 6 <     [ 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: