c – 动态分配3d数组
发布时间:2020-12-16 10:46:17 所属栏目:百科 来源:网络整理
导读:关于动态分配3d数组我有点困惑.现在,我只是像这样分配一大块内存: int height = 10;int depth = 20;int width = 5;int* arr;arr = new int[height * width * depth]; 现在我想更改3D数组中的值,例如: //arr[depth][width][height]arr[6][3][7] = 4; 但是,
关于动态分配3d数组我有点困惑.现在,我只是像这样分配一大块内存:
int height = 10; int depth = 20; int width = 5; int* arr; arr = new int[height * width * depth]; 现在我想更改3D数组中的值,例如: //arr[depth][width][height] arr[6][3][7] = 4; 但是,我无法使用上面的代码来更改值.如何使用单个索引访问位置深度= 6,宽度= 3,高度= 7的元素? arr[?] = 4; 有没有更好的方法来动态分配3D数组? 解决方法
索引到平坦的三维数组:
arr[x + width * (y + depth * z)] 其中x,y和z分别对应于第一维,第二维和第三维,宽度和深度是阵列的宽度和深度. 这是x y * WIDTH z * WIDTH * DEPTH的简化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |