C++ 将三维指针的第一个地址转换为一维指针时出现问题?

C++ 将三维指针的第一个地址转换为一维指针时出现问题?,c++,multidimensional-array,C++,Multidimensional Array,一个一维数组是否可以指向三维数组的第一个地址, 例如 int*数组; int***阵列3D; array=*array3D; 我需要第一个数组指向第二个数组的第一个地址。 我只需要将第一个地址插入指针。有没有人可以建议其他的起始地址?提前感谢。在处理2D和3D图像时,这种情况随时都会发生 您编写的array=*array3D显然无法编译,因为类型不匹配。array3D是**整数,array是*int 如果已正确设置array3D,例如: int ***array3D = new int **[z

一个一维数组是否可以指向三维数组的第一个地址, 例如 int*数组; int***阵列3D; array=*array3D; 我需要第一个数组指向第二个数组的第一个地址。
我只需要将第一个地址插入指针。有没有人可以建议其他的起始地址?提前感谢。

在处理2D和3D图像时,这种情况随时都会发生

您编写的array=*array3D显然无法编译,因为类型不匹配。array3D是**整数,array是*int

如果已正确设置array3D,例如:

int ***array3D = new int **[zsize];
for(int z = 0 ; z < zsize ; ++z)     
{
    array3D[z] = new int *[ysize];
    for(int y = 0 ; y < ysize ; ++y)
    {  
         array3D[z][y] = new int [xsize];
    }
}
然后,您可以访问诸如array3D[z][y]点之类的内容,指向给定z和y的x=0元素 或&array3D[z][y][x]指向元素x,y,z 或者*array3D[z]指向给定z的y=0和x=0元素,然后所有元素都将是int*类型。我建议写下你的数据是如何组织的


当然,您也必须手动删除此结构,如果您在产品中执行此操作,您应该小心处理异常,不要泄漏,但这是另一个主题。

需要格式化代码并重新发布。此外,您不能取消对void*的引用。请举例说明任何其他数据类型。@iammilind:但您可以取消对void**或void***的引用。您是想指向第一个元素的地址,即指向指针,还是指向第一个元素本身?此相关问题可能会为您提供一些见解