dreidimensionales dynamisches Array



  • Habe es wie in der Faq bei einem 2d Array gemacht:

    int ***mCountedFields;
             mCountedFields = new int**[MAX_PLAYERS];
    
    	for(int i=0;i<MAX_PLAYERS;i++)
    	{
    		mCountedFields[i] = new int*[10];
    		for(int j=0;j<10;j++);
    		{
    			mCountedFields[i][j] = new int[14];
    			mCountedFields[i][j][0] = 5;
    		}	
    	}
    	int bla=mCountedFields[0][0][0];
    

    Lässt sich compilieren und linken aber gibt bei Laufzeit einen Fehler bei der letzten Zeile:

    Unhandled exception at 0x00401473 in EinfachGenial.exe: 0xC0000005: Access violation reading location 0xcdcdcdcd.

    Kann mir jemand helfen?



  • Das Semikolon hinter der inneren for-Schleife hab ich jetzt weggemacht 😃 , geht aber trotzdem nicht.



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • template <typename T>  //3D-Array erstellen
    T ***create3D(size_t x, size_t y, size_t z) {
      T ***arr=0;
    
      for (size_t i=0;i<x;++i)
        arr = new T**[x];
    
      for (size_t i=0;i<y;++i)
        *(arr+i) = new T*[y];
    
      for (size_t i=0;i<y;i++)
        for (size_t j=0;j<z;++j)
         *(*(arr+i)+j) = new T[z];
    
      return arr;
    };
    
    template <typename T>  //3D-Array wieder löschen
    void kill3D(T ***mat, size_t x, size_t y, size_t z) {
      for (size_t i=0;i<y;i++)
        for (size_t j=0;j<z;++j)
          delete [] *(*(mat+i)+j);
    
      for (size_t i=0;i<y;++i)
        delete [] *(mat+i);
    
      delete [] mat;
      mat = 0;
    };
    

    Viel Spaß...

    MfG

    GPC


Anmelden zum Antworten