【发布时间】:2019-12-07 04:15:23
【问题描述】:
所以我用三重指针制作了一个矩阵,就像矩阵有指向另一个类的指针。在构造函数中,我分配了内存,但是当构造函数结束时,所有数据都会丢失在内存中。我究竟做错了什么? 这是我的课
class Map {
Field*** f;
int rows;
int columns;
public:
Map(int rows_, int columns_) : rows(rows_), columns(columns_) {
Field*** f;
f = new Field**[rows];
for (int i = 0; i < rows; i++) {
f[i] = new Field*[columns];
for (int j = 0; j < columns; j++) {
f[i][j] = new Field;
}
}
}
};
【问题讨论】:
-
在
Map构造函数中,您要声明一个名为f的局部变量,然后对其进行初始化。然后该变量超出范围并且它指向的内存被泄漏。数据成员(也称为f)永远不会被初始化。