mehrdimensionalen dynamischen array übergeben (pointer)



  • Hallo,

    ich habe einen mehrdimensinalen array mit hilfe von einem array von zeigern erzeugt!

    ...
    
    	int anzahlEcken = 5;		
    	double ** polygonA = new double*[anzahlEcken];
    	for (int i = 0; i < anzahlEcken ; i++)
            polygonA[i] = new double[3];
    

    Dieses mehrdimensionale array möchte ich nun an eine andere methode übergeben:

    void Ctest_befuellen([b]double ** polygon[/b], const double * const v1, int k){
    	for (int i = 0; i < 3 ; i++) {
    			polygon[k][i] = v1[i];
    	}
    }
    

    wie muss ich den fettgedruckten teil schreiben, damit die übergabe funktioniert?

    momentan bekomm ich so nur folgende fehlermeldungen:

    Error	2	error LNK2019: unresolved external symbol "public: void __thiscall Ctest_allDlg::Ctest_befuellen(double * *,double const * const,int)" (?Ctest_befuellen@Ctest_allDlg@@QAEXPAPANQBNH@Z) referenced in function "public: void __thiscall Ctest_allDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@Ctest_allDlg@@QAEXXZ)	test_allDlg.obj
    Error	3	fatal error LNK1120: 1 unresolved externals	D:\VisualCpp\Programmieren\Collision\Debug\test_all.exe
    


  • Der fettgedruckte Teil sieht in Ordnung aus, allerdings fehlt am Anfang der Zeile ein Ctest_allDlg:: . (anders formuliert: der Linker erwartet eine Methode und findet nur eine globale Funktion)



  • oh man...

    tut mir leid!
    sitze schon seit stunden an einem problem und habe nun wohl vor lauter bäumen den wald nicht mehr gesehen!!

    nichts desto trotz, vielen dank!!!!



  • Spricht irgendwas dagegen, das vernünftig in C++ zu modellieren, oder musst du das so implementieren, weil eine C API das so haben möchte? Wenn ich sowas sehe kommen mir fast die Tränen.



  • ...davon abgesehen, empfehle ich std::vector<> statt new[]/delete[], falls möglich.

    Die Verantwortung zur Verwaltung einer Resource wie zB Speicher solltest Du immer schnell einem Objekt übertragen -- oder mehreren, die sich die Verantwortung teilen. Das wird Dir viel Ärger ersparen (Ausnahmesicherheit, keine Lecks mehr, ...)

    Für diverse Datenstrukturen inklusive dynamische Arrays bietet die Standardbibliothek schon fertige Klassentemplates an. Nutze sie!


Anmelden zum Antworten