You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, October 16th 2006, 12:06pm

Array und Funktionen

Hallo,
ich wollte ein Array als Return-Wert einer Methode übergeben. Kurz gesagt:

C/C++ Code:

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
funktion()
{
int blabla[10;]
...
return blabla;
}
 
 
void main()
{
 int  blub[10];
 blub = funktion();
}


Soweit ich aber weiss, ist ein Array kein Rückgabewert für eine Methode.

Wie kann ich dann das Array zurückgeben?
Eigentlich eine Lapalie, aber ich musste es noch nie anwenden!

2

Monday, October 16th 2006, 3:34pm

C oder C++ ?

MfG void

3

Monday, October 16th 2006, 10:42pm

Man nehme Pointer. Oder direkt das Array.
Bsp:

C Quellcode

1
2
3
4
5
6
7
8
typedef double double_array[10];
 
double_array calcSomething ()
{
  double_array da;
  da[0] = 0.1;
  return da;
}



Pointer:

C Quellcode

1
2
3
4
5
6
double* calcSomething ()
{
  double* d = new double[10];
  d[0] = 0.1;
  return d;
}

-> Das Problem: du weißt nicht, wieviele Elemente drin sind

C++:

C Quellcode

1
2
3
4
5
6
7
typedef vector<double> double_vec;
 
void calcSomething (double_vec& dv)
{
  dv.push_back (0.1);
  dv.push_back (0.5);
}


-> Sauberste Lösung. Aus Performancegründen wird kein Rückgabewert verwendet, da sonst der Copy-Ctor gerufen werden würde.

hth

4

Tuesday, October 17th 2006, 8:42am

Danke dir, hatte leider schon eine Antwort. Aber deine sind auch sehr gut. Habe sie angetestet.

Similar threads

Social bookmarks