Array aus Pointern



  • Hi !

    Ich versuche folgendes:

    //in header datei
    Block** levelBlocks;
    
    //später in der cpp Datei
        width = WIDTH;
        height = HEIGHT;
    
        levelBlocks = new Block*[ width ][ height ];
        /*for( int i = 0 ; i <= width ; ++i )
            for( int j = 0 ; j <= height ; ++j )
                levelBlocks[ i ][ j ] = 0;
                */
    }
    

    Allerdings meckert der Compiler:

    make
    g++ -g `pkg-config --cflags clanGL-0.7 clanDisplay-0.7 clanCore-0.7 clanApp-0.7 clanSound-0.7 clanMikMod-0.7 clanVorbis-0.7` `sdl-config --cflags` -c LevelRenderer/Level.cpp -o Level.o
    LevelRenderer/Level.cpp: In member function `void Level::set_size(int, int)':
    LevelRenderer/Level.cpp:18: error: cannot convert `Block*
       (*)[((this->Level::height - 1) + 1)]' to `Block**' in assignment
    make: *** [Level.o] Fehler 1
    

    Problem: ich versteh nix. Wie mach ich das, dass ich ein 2-dim. Array von Pointer des Typs Block habe mit den entsprechenden Ausmaßen.

    mfg
    Tom



  • typedef Block* BlockColumn[width];
    BlockColumn* levelBlocks = new Block*[ width ][ height ];
    // oder halt
    BlockColumn* levelBlocks = new BlockColumn[ width ];
    

    width muss natürlich eine Konstante sein.


Anmelden zum Antworten