如何将由三重指针组成的矩阵动态分配给一个类?
Posted
技术标签:
【中文标题】如何将由三重指针组成的矩阵动态分配给一个类?【英文标题】:How can I dynamically allocate matrix that is made from triple pointer to a class? 【发布时间】:2019-12-07 02:45:19 【问题描述】:这是我的课
class Map
Field*** f;
int rows;
int columns;
;
如何制作指向类字段的指针矩阵? 我试过了,但它不起作用。
Map(int rows_, int columns_) : rows(rows_), columns(columns_)
f = new Field*[][];
*f = new Field*[rows];
for (int i = 0; i < rows; i++)
*f[i] = new Field[columns];
【问题讨论】:
f = new Field*[][];
-- 那应该做什么?您需要指定将有多少个 pointer-to-pointers。编译器无法猜测这个数量——你需要知道它是什么。还有here is a link to a 3D matrix 使用三颗星进行创作(IMO,这不是一件好事)。
【参考方案1】:
你可以考虑重新考虑你在做什么。扁平的一维数组是更好的选择。
如果你仍然想要一个 *** 指针,你可以这样做:
f = new Field**[Row];
for(int i =0; i<Row; i++)
f[i] = new Field*[Col];
for(int j =0; j<Col; j++)
f[i][j] = new Field[H];
for(int k = 0; k<H;k++)
f3D[i][j][k] = 0;
别忘了释放它。
【讨论】:
应该是指向类的指针矩阵,不是3D数组,不过谢谢。以上是关于如何将由三重指针组成的矩阵动态分配给一个类?的主要内容,如果未能解决你的问题,请参考以下文章