将三维指针的第一个地址转换成一维指针时出现问题
Problem in getting the first address of a 3 dimensional pointer into a single dimensional pointer?
可以让一个一维数组指向三维数组的第一个地址,如。int *array;
int ***array3D;
array=*array3D;
我需要第一个数组指向第二个数组的第一个地址。我只需要将第一个地址放入指针。谁能提出其他的建议来指向起始地址?
在处理2D和3D图像时,这种情况经常发生。
你写的(array = *array3D
)显然不会编译,因为类型不匹配。array3D
为**int
, 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 *
。我建议写下你的数据是如何组织的。
当然,你也必须手动删除这个结构,如果你在一个产品中这样做,你应该小心处理异常,不要泄漏,但这是另一个话题。
相关文章:
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- STL算法函数在多个一维容器上的使用
- 将二维数组的所有元素插入到一维数组中
- C++语法差异:二维和一维数组(指针算术)
- 将一维数组写入 CSV C++中的不同列?
- C++:将矩阵存储在一维数组中
- 当表示为对象的一维向量时,有效地旋转 NxM 矩阵 (C++)
- 如何在一维数组中的每个元素中都有多个int值
- 以C++填充一维数组
- 一维阵列的运动检测(神经网络或其他选项?
- 编写所需的代码以创建动态一维整数数组
- 用于在一维数组上嵌套循环操作的正确 openmp 指令
- 使用两个不同大小的一维阵列制作 2D 阵列
- 如何在 <threads> c++ 中使用和一维数组进行矩阵乘法?
- C++按内存地址将多维数组更改为一维数组
- 在 c++ 中返回一维数组时出错
- 新的一个一维阵列,非常大,例如60000*60000
- 如何使用指针到指针 (int **) 分配一维数组
- C/ c++:从指针字符一维数组中访问单个字符
- 将三维指针的第一个地址转换成一维指针时出现问题