程序的结构是这样的,有一个头文件 manager.h,其中 C++ 类定义了数据成员和成员函数。然后在 manager.C 文件中实现成员函数。
我在 .c 文件中定义了 3 个结构。
#define HTSIZE 7
struct Node
{
int value;
int page;
struct Node *next;
};
struct Node *hashtable[HTSIZE];
struct lruNode{
int value;
struct lruNode *next;
struct lruNode* head;
struct lruNode* tail;
};
struct lruNode* lruhashtable[HTSIZE];
struct lruNode* lruTrackHead;
struct lruNode* lruTrackTail;
struct mruNode{
int value;
struct mruNode *next;
};
struct mruNode* mruTrackHead=NULL;
struct mruNode* mruhashtable[HTSIZE];
类的数据成员如下: 类名:页
类名:框架
班级名称:经理
所有结构都在 manager.C 中声明
manager.h 具有以下数据成员。
Page* pagePool;
Frame* framePool;
在 manager.C 中,我将它们定义为
pagePool=new Page[n];
framePool=new Frame[n];
在 manager.C 的析构函数中
我正在做
delete[] pagePool;
delete[] framePool;
*hashtable=NULL;
*lruhashtable=NULL;
*mruhashtable=NULL;
这里的结构是全局的,而不是类的一部分。这是我家庭作业的一部分。问题是在我的测试用例中,我正在转发以前的测试用例值。
我进行了编辑以按原样设置指针。现在,所有指向 struct 的指针数组的数组中的第一个值为 null。
仍然没有释放指向对象的指针数组。有人可以对此发表评论吗?
编辑
在遍历循环时,指针被释放。
但是指向对象的指针数组仍然不是吗?