此问题在此处已有答案:
When to use new and delete(4个答案)
About the usage of new and delete, and Stroustrup's advice(3个答案)
2天前关闭。
你好,我是新的c++,并试图掌握内存管理在它与免费的()和delete。我有一个add_flat函数,在我尝试释放内存之前,它一直工作得很好。我创建了一个FlatList对象,并添加了flat。没有delete语句,它工作得很好,但在我放入它之后,Head只返回了一些垃圾值。我应该定义一个析构函数吗?我在c++中是个新手所以任何帮助都将不胜感激。
第一个
1条答案
按热度按时间f3temu5u1#
内存 * 必须 * 解除分配
如果我们以链表为例,只要插入了节点,就必须保留它们。当你抑制其中一个节点时,你可以删除它所分配的内存,因为你不再需要这个元素了。无论如何,它是由前一个元素或链表头指向的。因此,你必须将前一个元素或链表头的指针重定向到后一个节点。
保持指针一致性需要非常小心,因为可能会出现棘手的极端情况。如果忘记删除,就会出现内存泄漏。如果忘记重定向某个指针,就会出现悬空引用和潜在崩溃。