C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Re: Hilfe mit Feldern und mehreren Funktionen

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Thomas Zimmermann
Guest





PostPosted: Tue Sep 23, 2003 2:20 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote



Hallo Marc

Quote:
Ich wollte ein kleines Programm proggen. Hier ein Teil des Codes...

double rechnung() {
double w[8];
....
return w[8];
}

int main() {
double w[8]=rechnung();
....
}

Leider kommt beim Kompilieren eine Fehlermeldung...

Es waehre gut, wenn Du auch schreiben wuerdest, was Du
machen willst.
Die Fehlermeldung kommt sicherlich, weil Du w[8] zurueck
gibst. Der Array hat aber nur die Eintraege 0 bis 7.
Wenn du den ganzen Array zurueck geben willst, musst Du
folgendes machen:

double* rechnung()
{
double *w = new double[8]; // Speicher holen.
...
return w; // Rueckgabe des Arrays
}

int main()
{
double *w = rechnung();
...
delete [] w; // Speicher muss wieder freigegeben werden.
exit(0);
}

Sei aber vorsichtig damit, denn man vergisst das delete [] sehr
schnell.

Quote:
Kann mir jemand helfen? Ausserdem suche ich eine
Moglichkeit, wie man mehrere Variablen in main mitnehmen
kann. Ich kenne:

int funk() {
int a;
return a;
}

int main() {
int irgentwas=rechnung();
}

Wie kann ich mehrere Variablen mit in Main mitnehmen?

Mehrere Variablen mitnehmen? Du meinst zurueckgeben?
Offiziell geht das garnicht, aber es gibt einen Trick:

void funk(int *var1, int *var2)
{
int a, b;
...
*var1 = a;
*var2 = b;
}

int main()
{
int x, y;
...
funk(&x, &y);
...
exit(0);
}

Hier uebergibst Du Zeiger an die Funktion, und speicherst
die Rueckgabewerte in den zugehoerigen Speicherplaetzen.
x ist demnach gleich a und y ist gleich b.
(Das funktioniert natuerlich auch mit Referenzen statt
Zeigern.)

Gruss Thomas

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
André Pönitz
Guest





PostPosted: Tue Sep 23, 2003 2:23 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote



Marc A. Kastner <maku.kasutota (AT) web (DOT) de> wrote:
Quote:
Hallo,
gleich am Anfang: Ich bin noch ein zimmlicher Newbie.
Ich wollte ein kleines Programm proggen. Hier ein Teil des Codes...

double rechnung() {
double w[8];
....
return w[8];
}

int main() {
double w[8]=rechnung();
....
}

Du kannst arrays nicht zurueckgeben.

Ueblich ist bei sowas:

void rechnung(double * w) {
w[1] = 5;
w[1] = 5;
}

int main() {
double w[8];
rechnung(w);
....
}


Quote:
Leider kommt beim Kompilieren eine Fehlermeldung...
Kann mir jemand helfen? Ausserdem suche ich eine
Moglichkeit, wie man mehrere Variablen in main mitnehmen
kann. Ich kenne:

int funk() {
int a;
return a;
}

int main() {
int irgentwas=rechnung();
}

Wie kann ich mehrere Variablen mit in Main mitnehmen?

Schau mal in Deinem Lieblingslehrbuch unter 'struct' nach.

Andre'

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Christoph Rabel
Guest





PostPosted: Tue Sep 23, 2003 2:30 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote



Marc A. Kastner wrote:
Quote:
gleich am Anfang: Ich bin noch ein zimmlicher Newbie.
Ich wollte ein kleines Programm proggen. Hier ein Teil des Codes...

double rechnung() {
double w[8];
....
return w[8];
}

int main() {
double w[8]=rechnung();
....
}

Leider kommt beim Kompilieren eine Fehlermeldung...

Ich würde dir raten, es so zu machen:

#include vector;
using std::vector;

vector<double> rechnung() {
vector<double> w(Cool;
w[1] = 3.14;
...
return w;
}

Du kannst den vector genau wie ein array verwenden, mit diversen
Zusatzvorteilen.

Quote:
Kann mir jemand helfen? Ausserdem suche ich eine
Moglichkeit, wie man mehrere Variablen in main mitnehmen
kann. Ich kenne:

int funk() {
int a;
return a;
}

int main() {
int irgentwas=rechnung();
}

Wie kann ich mehrere Variablen mit in Main mitnehmen?

Das sind meine Beiden Fragen, bitte helft mir!

Die einfachste Möglichkeit dürfte das erstellen einer Struktur sein,
aber es gibt zig Möglichkeiten dein Problem zu lösen.

struct Data
{
int data1;
int data2;
};

Data funk() {
Data a;
a.data1 = 5;
a.data2 = 6;
return a;
}

Mein bester Tipp:

Besorg dir ein gutes C++ Buch, wie z.B. Accelerated C++. Es ist für
Anfänger besonders gut geeignet.

mfg

Christoph

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Marc A. Kastner
Guest





PostPosted: Tue Sep 23, 2003 3:42 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote

Danke! Ihr habt mir geholfen. Ich werde es mal mit vectoren ausprobieren.

mfg,
marc

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Michael Trocken
Guest





PostPosted: Tue Sep 23, 2003 5:23 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote

Christoph Rabel <odie (AT) hal9000 (DOT) vc-graz.ac.at> wrote

Quote:
Marc A. Kastner wrote:
gleich am Anfang: Ich bin noch ein zimmlicher Newbie.
Ich wollte ein kleines Programm proggen. Hier ein Teil des Codes...

double rechnung() {
double w[8];
....
return w[8];
}

int main() {
double w[8]=rechnung();
....
}

Leider kommt beim Kompilieren eine Fehlermeldung...

Ich würde dir raten, es so zu machen:

#include vector;

Du meintest vermutlich

#include <vector>

(Obwohl mir die andere Syntax ganz gut gefällt ;-)


Gruß,
Michael

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Michael Trocken
Guest





PostPosted: Tue Sep 23, 2003 7:23 pm    Post subject: Re: Hilfe mit Feldern und mehreren Funktionen Reply with quote

Thomas Zimmermann <kuhundbaer (AT) web (DOT) de> wrote

[...]
Quote:
Wenn du den ganzen Array zurueck geben willst, musst Du
folgendes machen:

double* rechnung()
{
double *w = new double[8]; // Speicher holen.
...
return w; // Rueckgabe des Arrays
}

int main()
{
double *w = rechnung();
...
delete [] w; // Speicher muss wieder freigegeben werden.
exit(0);
}

Sei aber vorsichtig damit, denn man vergisst das delete [] sehr
schnell.
[...]


Hallo Thomas!

Mich würde interessieren, auf welchem Weg du C++ gelernt hast. Hast du
einen Programmierkurs belegt (etwa an der Uni), oder hast du dein
Wissen aus Büchern? Falls aus Büchern: Welche hast du gelesen?

Hast du vor C++ schon in C programmiert? Oder Java? Welche anderen
Programmiersprachen kannst du?

Gruß,
Michael

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.