删除C++中的动态结构
Deleting Dynamic Struct in C++
我有一个名为链接数字的结构
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。我想删除所有结构,这样就不会有内存泄漏和悬空指针。
提前感谢...
好的,所以首先你要开始从链接或结构的头部删除内存。您需要创建一个循环,以便它适用于多个结构。
如:
while( first != nullptr){
LinkedNum* curr = first;
first = first -> next;
delete curr;
}
此代码在存储第一个值的位置创建一个临时值,并沿着链接逐个删除每个元素并更新值。
希望对您有所帮助!
相关文章:
- 使用列表进行动态结构分配
- C++:从动态结构数组中删除元素并移动其他元素
- 返回带有动态结构数组的结构结构
- 删除C++中的动态结构
- 动态结构数组错误
- C++ 它没有从文件读回动态结构
- C++中的动态结构中的动态结构
- C++ 赋值动态结构
- 如何在没有指针的情况下返回动态结构
- 用char*构建动态结构的更好方法
- C++从不同的cpp访问动态结构
- 字符串中的动态结构名称
- 将动态结构数组复制到另一个C++中
- 充满动态结构的c++数组
- c++中的动态结构
- C++中的动态结构
- 定义动态结构
- 动态结构体成员在使用 CUDA/NVCC 传递到函数时损坏
- 如何释放动态结构数组的内存
- 需要删除动态结构内容,然后删除结构本身