array übergeben



  • Mich würde interessieren wie ich ein array als parameter übergeben kann?
    Ich möchte in der von der mail aus dei funktion erzeuge array aufrufen, welches mir ein array mit MAX Zufallszahlen erzeugt.

    Wie löse ich das am Besten? bzw. wie übergeb ich dann das Array wieder an die main Funktion? Oder muss ich das ganze mittels Referenz oder Zeiger lösen?

    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    int MAX;
    
    int erzeuge_array(int MAX)
    {
    int feld[MAX];
    cout << "Starte Zufallsgenerator\n";
    srand(time(NULL));
    	for (int i=0; i<MAX; i++)
    	{
    	feld[i]= rand()%45+1;
    	cout << feld[i] << " ";
    	}
    //return feld[MAX]????;
    }
    
    int main(){
    	cout << "Lange des Feldes:";
    	cin >> MAX;
    	erzeuge_array(MAX);
    
    return 0;
    }
    

    danke
    michi



  • Hi!

    Hi entweder als Zeiger oder direkt.

    void foo( int feld[], int max )
    {}
    
    int *foo( int max )
    {
      int *res = new int[ max ];
      return res;
    }
    
    void foo( int *feld, int max )
    {}
    

    Bei der zweiten Lösung musst du den Speicher natürlich wieder freigeben!

    grüße



  • Das sollte man nicht machen, beachte lieber das RAII-Idiom. Dazu fehlen dir als Anfänger zwar noch die Mittel, aber es sollte wenigstens mal im selben Block stattfinden:

    void fillArray(int* array, int elements) {
        for(int i=0; i<elements; ++i)
            array[i] = i;
    }
    
    int main()
    {
        int meinArray = new int[10]; // oder sogar auf dem stack, wär noch einfacher 
        fillArray(meinArray, 10);
        delete[] meinArray;
    }
    

    Gruß



  • danke für die antworten. ich werd mir in Ruhe einmal anschauen was da genau gemacht wird. danke nochmal

    lg
    michi


Anmelden zum Antworten