I created this array this array inside a function, with the variable MODEL_VERTEX_NUM initialized @ runtime, which, I guess, is the sticking point here.
loat model_vertices [][]= new float [MODEL_VERTEX_NUM][3];
I got the following errors:
1>.\GLUI_TEMPLATE.cpp(119) : error C2087: 'model_vertices' : missing subscript
1>.\GLUI_TEMPLATE.cpp(119) : error C2440: 'initializing' : cannot convert from 'float (*)[3]' to 'float [][1]'
I realize that when I do:
float model_vertices *[]= new float [MODEL_VERTEX_NUM][3];
The compiler lets this pass, but I wanna understand what’s wrong with the previous declaration.
So, what’s wrong with the [][] declaration?
For a two-dimensional array
a[X][Y]the compiler needs to knowYto generate code to access the array, so you need to change your code toIf you have an array of type
Ta[X][Y]and want to accessa[x][y]that is equivalent to accessing*(((T*)(&a[0][0])) + x*Y + y). As you can see the compiler needs to knowYbut notXto generate code for accessing the array.