Array an Funktion übergeben und ändern



  • Hi,

    ich gebe zu ich bin noch neu im Bereich C++ MFC 😉 und hoffe, dass ihr mir bei der wahrscheinlich einfachen Frage weiterhelfen könnt.

    Und zwar möchte ich aus meiner Funktion (func1) ein Array an eine andere Funktion (func2) übergeben und dieses darin verändern können.

    void myCoordinateSystem::func1()
    double new_array[2][2]={{17.29,13.47},{23.87,12.56}};
    
    double mySystem::func2(double new_array2)
    {
    	new_array2[1][1]=27;
    }
    

    Ich hab hier im Forum schon alles durchsucht, jedoch keinen plausiblen Ansatz für mein Problem entdecken können. 😕

    Vielen Dank schonmal im Voraus

    Gruß Sebbl



  • Da die Größe vom Array bekannt ist:

    void myFunc(double arr[2][2]) {
    	arr[0][0]=0;
    }
    


  • Hey _matze,

    DANKE
    funtioniert natürlich (hätte schwören können, dass ich es so schon probiert habe 🙄 )

    Das Problem ist jedoch, dass die Größe des Arrays nicht fest definiert ist. Sie kann bei jeder Programmausführung abweichen. (Code war nur ein Beispiel)
    Wie muss ich in diesem Fall vorgehen ?

    Gruß Sebbl



  • Zum Beispiel so:

    void doubleref(double *arr,int dimX,int dimY) {
    	int i=0;
    	for(int y=0;y<dimY;++y) {
    		for(int x=0;x<dimX;++x) {
    			arr[y*dimX+x]=i++;
    		}
    	}
    }
    
    int main()
    {
    	double darr[5][5];
    	doubleref(&darr[0][0],5,5);
    }
    

Anmelden zum Antworten