一维数组是否可以指向三维数组的第一个地址,例如int *array; int ***array3D; array=*array3D;我需要第一个数组指向第二个数组的第一个地址。我只需要将第一个地址放入指针。有没有人可以建议一些替代方案来指向起始地址?提前谢谢。
发布于 2011-04-16 21:39:33
当你处理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] (指向给定z和y的x=0元素)或&(array3D[z][y][x]) (指向元素x,y,z)或*(array3D[z]) (指向给定<代码>D17的<代码>d15和<代码>d16元素)之类的内容,然后所有内容都将是<代码>D18类型。我建议写出你的数据是如何组织的。
当然,您也必须手动删除此结构,如果您在产品中执行此操作,则应小心处理好异常并且不会泄漏,但这是另一个主题。
https://stackoverflow.com/questions/5686175
复制相似问题