首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将三维指针的第一个地址转换为一维指针有问题吗?

将三维指针的第一个地址转换为一维指针有问题吗?
EN

Stack Overflow用户
提问于 2011-04-16 19:32:35
回答 1查看 143关注 0票数 0

一维数组是否可以指向三维数组的第一个地址,例如int *array; int ***array3D; array=*array3D;我需要第一个数组指向第二个数组的第一个地址。我只需要将第一个地址放入指针。有没有人可以建议一些替代方案来指向起始地址?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-04-16 21:39:33

当你处理2D和3D图像时,这种事情总是会发生。

你写的(array = *array3D)显然不能编译,因为类型不匹配。array3D是一个**int,数组是一个*int

如果您正确设置了array3D (例如):

代码语言:javascript
复制
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] (指向给定zyx=0元素)或&(array3D[z][y][x]) (指向元素xyz)或*(array3D[z]) (指向给定<代码>D17的<代码>d15和<代码>d16元素)之类的内容,然后所有内容都将是<代码>D18类型。我建议写出你的数据是如何组织的。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5686175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档