在 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 逐个删除每个元素并更新值。
希望这对你有帮助!
我有一个名为 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 逐个删除每个元素并更新值。
希望这对你有帮助!