我有这样的结构:
class Items
{
private:
struct item
{
unsigned int a, b, c;
};
item* items[MAX_ITEMS];
}
说我想“删除”一个项目,就像这样:
items[5] = NULL;
后来我在同一地点创建了一个新项目:
items[5] = new item;
我还需要打电话吗delete[]
来清理这个?或者这不需要因为数组的界限items[]
在编译之前就知道了吗?
是否将指针设置为NULL有效,还是应该在那里调用DELETE?
发布于 2018-06-15 11:30:41
删除项目使用:
删除项目五;
删除项目后,建议将已删除的指针设置为NULL,这样,如果以后错误地再次删除该指针,则不会出现错误。
发布于 2018-06-15 12:09:34
需要delete
在将其设置为NULL之前进行调用。(将它设置为NULL不是必需的,如果在删除指针后意外地尝试解除引用,它只会帮助减少错误。)
请记住,每次使用时new
,都需要delete
稍后使用相同的指针。不要使用其他的。
此外,new []
和delete []
一起去以同样的方式,但你千万不要混合new []
使用delete
或new
使用delete []
。在你的例子中,因为你创建了对象new
(而不是new []
创建一个对象数组),所以你必须用delete
(而不是delete []
)删除对象。
https://stackoverflow.com/questions/-100000288
复制相似问题