可以将单维数组指向三维数组的第一个地址,
例如
int *array;
int ***array3D;
array=*array3D;
我需要第一个数组指向第二个数组的第一个地址。
我只需要指针的第一个地址。任何人都可以建议任何替代指向起始地址?提前谢谢。
答案 0 :(得分:0)
当你处理2D和3D图像时,这种事情总是发生。
你写的(array = *array3D
)显然不会编译,因为类型不匹配。 array3D
是**int
,数组是*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]
之类的内容(指向给定x=0
和z
的{{1}}元素
或y
(指向元素&(array3D[z][y][x])
,x
,y
)
或z
(指向给定*(array3D[z])
的{{1}}和y=0
元素,然后全部为x=0
类型。我建议写出你的数据是如何组织的。
当然你也必须手动删除这个结构,如果你在产品中这样做,你应该小心处理异常并且不要泄漏,但这是另一个话题。