Help - Zoeken - Gebruikers - Kalender
Volledige versie: [C/C++] Pointer naar multi dimensionale array
MandrivaClub.NL > Forum > Documentatie en Programmeren
Alain
Hi, smile.gif

ik wil een pointer maken naar een multi dimensionele array. Dit doe ik omdat ik een multidimensionale array nodig heb, maar ik dit flexibel wil houden zodat de grootte van de array in de constructor (in het geval van C++) wordt bepaald. Ik had hiervoor de volgende constructie in gedachten:

Eerst declareer ik een pointer naar de 2 dimensionale array:

CODE
int *board[][];


Vervolgens maak ik in de constructor de werkelijke array aan:

CODE
board = (int * [][]) malloc(sizeof(int[n][n]));


Ik krijg dan de volgende melding:

CODE
nqueensboard.cpp:10: error: multidimensional array must have bounds for all dimensions except the first


Dus dan doe ik het als volgt:

CODE
board = (int * [n][n]) malloc(sizeof(int[n][n]));


En dan krijg ik de melding:

CODE
nqueensboard.cpp:10: error: ISO C++ forbids casting to an array type `int*[((this->NQueensBoard::n - 1) + 1)][((this->NQueensBoard::n - 1) + 1)]'


Nu kan ik dit alles wel oplossing door een integer pointer te maken en de pointer als 1 dimensionale array beschouwen, maar dat vind ik niet netjes.

Wie weet wat ik fout doe?
Alain
Ik zit net ff (logisch) na te denken en tuutlijk wil dit niet ... :?

Als je een blok geheugen alloceert is dit geen array, maar gewoon een blokje geheugen ... Ik zal eens iets maken in de richting van een for loop die de verschillende array elementen aanmaakt. ;-)
boudewijn
Ik heb deze niet getest, maar het zou moeten werken:


CODE


maakVeld(int depth)

{

       int **a=new int*[depth];

for(int i=0;i<depth;i++)

{

 a[i]=new int[depth];

}

        return;

}



Post maar of het werkt
Alain
Het werkt. o/ Thnx. smile.gif
boudewijn
No problem biggrin.gif

Mag ik trouwens het resultaat zien van je programma (maw de source), lijkt me wel grappig smile.gif
Alain
GHeghe, das nog niet af en zal misschien wel nooit af komen. Tis meer om er wat van te leren. ;-) (En ik heb het n-queens probleem al een keer in C opgelost. ;-))
boudewijn
Netjes
Dit is een "Print" versie van onze forums. Om de volledige versie met meer informatie, afbeeldingen en opmaakte bekijken, a.u.b. klik hier.