我试图创建一个指向充满指针的动态3D阵列的指针。我和Voxel一起工作,所以让我们说t_cube
是我的对象。
首先,我尝试这样做:
t_cube* (*m_Array)[][][];
我以为我可以这样做
m_Array = new t_cube[sizeX][sizeZ][sizeY];
然而,编译失败了。
接下来我尝试了这个:
t_cube *(m_Model[]); // This is my .h
{
t_cube *model_Tempo[sizeX][sizeZ][sizeY]; // And this is in my class constructor.
m_Model = model_Tempo;
}
再次,这无法编译。
答案 0 :(得分:0)
我希望这个例子有助于解决您的问题:
因为,我们正在处理三维数组指针。所以,如果我用C ++语法编写它,就像是:
t_cube *array[x_size][y_size][z_size];
但是,你已经提到过,它无法执行。 现在,使用动态分配方法做同样的事情。
t_cube ****array; // Since, it a pointer to the 3D Array
array = new t_cube ***[x_size];
for(int i=0; i<x_size; i++) {
array[i] = new t_cube **[y_size];
for(int j =0; j<y_size; j++) {
array[i][j] = new t_cube *[z_size];
}
} /* I'm sure this will work */
而且,你遇到麻烦的原因是: