我正在寫一個使用鏈接列表的程序,在我的代碼中,我使用「new」關鍵字創建了一個對象指針。據我所知,任何時候你使用新的關鍵字,你也需要刪除,我想知道如果我正確地做到這一點。如何正確釋放分配給鏈表的內存?
#include"gameClass.h"
#include"card.h"
#include"list.h"
#include"node.h"
using namespace std;
List::List()
{
head = NULL;
}
List::~List()
{
delete head;
}
void List::add(Card* tmpCard)
{
if (head == NULL)
{
Node* tmpNode;
tmpNode = new Node;
tmpNode->setNext(NULL);
tmpNode->setData(tmpCard);
head = tmpNode;
delete tmpNode;
}
else
{
Node* tmpNode;
tmpNode = new Node;
tmpNode->setNext(head->getNext());
tmpNode->setData(tmpCard);
head = tmpNode;
delete tmpNode;
}
}
Card * List::remove()
{
if (head != NULL)
{
//Card* tmpCard;
Node* tmpNode;
tmpNode = new Node;
tmpNode->setNext(head->getNext());
tmpNode->setData(head->getData());
head->setNext(tmpNode->getNext());
delete tmpNode;
}
return nullptr;
}
安裝新的'head'並立即刪除它?太糟糕了...... – MikeCAT