在 C++ 中删除动态结构

Deleting Dynamic Struct in C++

我有一个名为 Linked number 的结构

struct LinkedNum{
    int num;
    LinkedNum * next;
}

然后我使用new运算符为这个结构分配动态内存。

LinkedNum * first;
first = new LinkedNum;
first->num = 10;
first->next = nullptr;

LinkedNum * base;
base = first;
base->next = new LinkedNum;
base = base->next;

base->num = 20;
base->next = nullptr;

现在我将如何释放该结构使用的所有内存。有两个结构 1 有 num = 10,另一个有 num = 20。 我想删除所有结构,这样就不会出现内存泄漏和悬空指针。

提前致谢...

好的,所以首先您要开始从 link 或结构的头部删除内存。您需要创建一个循环,以便它适用于多个结构。
如:

while( first != nullptr){
     LinkedNum* curr = first;
     first = first -> next;
     delete curr;
}

这段代码在存储第一个值的地方创建了一个临时值,然后 link 逐个删除每个元素并更新值。
希望这对你有帮助!