Dreidimensionales Dynamisches Array, bitte um Korrektur.



  • Hallo,
    Ich sitze gerade an einem Feld und das funktioniert nach diesem Prinzip in 2 Dimensionen, aber sobald ich Versuche drei anzulegen hagelts Fehler!
    Was mache ich falsch, wie gehts richtig?

    // Dynamisches Array für die relevanten Bildpunkte anlegen	
    
    	PunkteSpeicher = new (unsigned int** [Rekursionstiefe]);
    
    	for (unsigned short rtcounter=0;rtcounter<Rekursionstiefe;rtcounter++)
    	{
    		long int Dimensionsgroesse = static_cast<unsigned int>(pow(4,rtcounter));
    
    		PunkteSpeicher[rtcounter]= new unsigned int* [Dimensionsgroesse];
    
    		for (long int dgcounter=0;dgcounter<Dimensionsgroesse;dgcounter++)
    		{
    			PunkteSpeicher[rtcounter][dgcounter]= new unsigned int [1];
    		}
    	}
    

    Vielen Dank vorab,

    der Ewigsuchende



  • Zu dem Feld gehört natürlich noch eine Zeile Definition!

    unsigned int ***PunkteSpeicher;
    

    und die ändert sich natürlich mit der Anzahl der Dimensionen!

    ganz einfach ein Stern für jede 😉

    Grüße

    der Ewigsuchende



  • aber kannst du mir trotzdem sagen, wofür du das benutzen willst 😕

    ich bin mir sicher, dass

    std::vector<std::vector<std::vector<int> > > test; //oder
    std::map<int,std::map<int,std::map<int,int> > > test;
    

    besser ist.

    und im stroustrup steht übrigens, dass man "unsigned" nur im äußersten notfall benutzen sollte.



  • Ewigsuchender schrieb:

    long int Dimensionsgroesse = static_cast<unsigned int>(pow(4,rtcounter));
    

    Schau dir mal die Shift Operatoren an. 💡

    Ewigsuchender schrieb:

    PunkteSpeicher[rtcounter][dgcounter]= new unsigned int [1];
    

    Findest du das nicht auch ein bisschen zuviel des Guten. 🙄

    Lars Hupel schrieb:

    und im stroustrup steht übrigens, dass man "unsigned" nur im äußersten notfall benutzen sollte

    Man muss ja nicht zu allem ja und Amen sagen. 😉



  • groovemaster schrieb:

    Lars Hupel schrieb:

    und im stroustrup steht übrigens, dass man "unsigned" nur im äußersten notfall benutzen sollte

    Man muss ja nicht zu allem ja und Amen sagen. 😉

    ich wollt ja nur darauf hinweisen


Anmelden zum Antworten