[英]How to free an array of structure and objects in C++?
程序的結構就是這樣,有一個頭文件管理器.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];
類的數據成員如下:類名:Page
類名稱:框架
類名:經理
所有結構都在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。
仍然沒有釋放指向對象的指針數組。 有人可以對此發表評論嗎?
編輯
在遍歷循環時,將釋放指針。
但是仍然不是指向對象的指針數組嗎?
你打電話時
免費(哈希表);
您釋放分配給數組的內存
int value;
int page;
struct Node *
但是為Node指向的結構分配的內存已取消分配。
主要思想是從“最深的尖頭”結構到頂部。 因此,嘗試以自下而上的方式進行自下而上的脫位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.